ruvnet / ruvnet/RuVector

CI: Tiny Dancer aarch64-unknown-linux-musl build broken by rust-toolchain/zig version drift

Open Beginner friendly
#900 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
4.5k
Forks
603
Avg merge
23h 32m
Merged PRs (30d)
59

Description

Symptom

Build Tiny Dancer linux-arm64-musl fails while compiling redb 2.6.3 (a third-party dependency), before any tiny-dancer source is reached:

error: linking with `zig-linker-aarch64-unknown-linux-musl.sh` failed: exit status: 1
  = note: error: unsupported linker arg: --fix-cortex-a53-843419
error: could not compile `redb` (lib) due to 1 previous error

Root cause — version drift baked into the workflow

.github/workflows/build-tiny-dancer.yml uses a floating toolchain: stable (line ~83) while pinning zig 0.13.0 (line ~104). Stable Rust's aarch64-unknown-linux-musl target spec now emits the Cortex-A53 erratum workaround flag --fix-cortex-a53-843419, and zig 0.13.0's linker rejects it as unsupported.

Evidence it is drift, not a code regression

  1. linux-x64-musl takes the identical zig path and passes — only the aarch64-specific erratum flag fails.
  2. The failure is in a third-party dependency, before first-party code compiles.
  3. This workflow is path-filtered and last ran successfully on 2026-08-03. It has had no run in ~3 weeks, so the first PR to touch crates/ruvector-tiny-dancer-* surfaces drift that accumulated in the interim — it does not cause it.

Surfaced by PR #893 (PIR WP28), whose diff is pure .rs across three tiny-dancer crates with no .toml, build.rs, .cargo/, or workflow changes and no new dependencies.

Suggested fix (separate CI PR, not in a feature PR)

Either pin the Rust toolchain to a version whose aarch64-musl spec predates the flag, or bump zig to a release whose linker accepts --fix-cortex-a53-843419. Pinning both sides is preferable to leaving one floating against the other, since that is what allowed the two to drift apart silently for three weeks.

Related, separate pre-existing failure

The same runs show Clippy + fmt failing on main as well, from ~31 rustfmt diffs in crates/ruvector-agent-memory/{diagnostic,fusion,observation}.rs — files from earlier PIR work packages, unrelated to this workflow. Worth a small fix(fmt) PR once PIR WP27 (#891), which is currently editing fusion.rs, has merged — doing it sooner would conflict.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in .github/workflows/build-tiny-dancer.yml around the Rust toolchain and Zig version settings. Check compatible pinned versions for the aarch64-unknown-linux-musl target, then run or inspect the Build Tiny Dancer linux-arm64-musl workflow. Done means the aarch64-musl build completes without the unsupported linker-argument error while the existing linux-x64-musl path remains successful.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, zig
Domain
build-system, ci-cd
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.