workerd: macOS symbolication does not work
Symbolication with llvm-symbolizer was enabled for the workerd github runners in test.yml in #1247.
Shortly after, it was suspended for macOS in commit ad20f5e039d34 in PR #1283 when additional build configurations were added because it leads to test timeouts. The symbol search process appears to be slow / misconfigured and the CPU and storage capabilities of the free-tier github runners are limited.
We've had issues with macOS, symbols for LLVM, and bazel build. workerd explicitly sets a source-map for debugging. The problem in this ticket is likely related.
I've spent a day or two looking into this, but have not cracked it. This ticket is just to track that we have a problem here. The next step is to collect fs activity from llvm-symbolizer, macOS is very different from Linux / Windows; procmon on windows is king :-). For macOS, it looks like it needs System Integrity Protection turning off and then finding a dtrace based tool for the fs activity (opensnoop or some-such).
It would also be good to fix this as a reasonable proportion of workerd users have macOS machines and they have no chance of reporting stack traces even if they want to.
A couple of related observations:
-
macOS has it's own
backtrace_symbolsfunction. This might be more expedient to use since it should give meaningful stacks without needing to run an additional tool. -
llvm-symbolizerhas a--filter-markupoption that consumes symbolizer markup. This probably post-dates the code used in workerd (capnproto) and might make things marginally cleaner.
解决了一下版本依赖产生的编译问题,目前用1.78.0编译是没问题的