diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ed98fa89..098382c3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -286,6 +286,16 @@ jobs: - uses: camshaft/rust-cache@v1 + # asan expects a binary at /usr/bin/llvm-symbolizer but GHA runners include + # multiple versioned binaries, like /usr/bin/llvm-symbolizer-13. This step + # finds the latest symbolizer and use it as the "base" llvm-symbolizer binary. + # + # llvm-symbolizer is necessary to get nice stack traces from asan errors. + # Otherwise the stack trace just contains a hex address like "0x55bc6a28a9b6" + - name: set llvm symbolizer + run: | + sudo ln -s $(find /usr/bin/ -maxdepth 1 -name "llvm-symbolizer-*" | sort -V | tail -n 1) /usr/bin/llvm-symbolizer + - name: Run Unit Tests under ASAN env: RUSTDOCFLAGS: -Zsanitizer=address