lurk-lab/lurk-rs

ci: M1 Mac job fails perpetually once a PR is dequeued

Opened this issue · 1 comments

M1 Mac merge_group tests stuck on failure

When a pull request is removed from the merge queue manually or due to failing status checks, all subsequent runs of the M1 Mac merge_group checks in that PR fail with the following error:

error: linking with `cc` failed: exit status: 1
# --snip--
= note: ld: '___blst_platform_cap' from '/var/folders/by/4sf3w42d7kb07qp4n7dbq1w40000gn/T/rustcF7ISuF/libblst-40e37616ca5d8e14.rlib[3](1e5a6c548a13e2d4-assembly.o)' not 4-byte aligned, which cannot be encoded as a target of LDR/STR in '' from '/var/folders/by/4sf3w42d7kb07qp4n7dbq1w40000gn/T/rustcF7ISuF/libblst-40e37616ca5d8e14.rlib[3](1e5a6c548a13e2d4-assembly.o)'
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

Failing runs:

https://github.com/lurk-lab/lurk-rs/actions/runs/7963456194/job/21739066576
https://github.com/lurk-lab/lurk-rs/actions/runs/7963756189/job/21739972698

Workarounds

  • Wait for another commit to merge, then rebase the failing PR and add it to the merge queue again
  • Force-merge, bypassing the queue

Potential solutions

  • Remove blst from the codebase, since it seems to be the culprit of many compilation issues. This is infeasible in the short term due to its usage in grumpkin-msm, which is a core Lurk dependency.
  • Remove the Mac CI check from our merge_group checks, instead running on a nightly schedule. This would likely avoid the merge queue issues while preserving compatibility. GitHub-hosted M1 Mac runners are still in beta, so we can try restoring the current merge_group test at a later date.

Remove blst from the c`odebase, since it seems to be the culprit of many compilation issues. This is infeasible in the short term due to its usage in grumpkin-msm, which is a core Lurk dependency.

Yes.

With that said, I strongly suspect it's related to OSX overriding the C compiler on the platform, forcing CC=gcc, CXX=g++ (and making sure gcc is installed of course) should help with those errors.