Files
seaweedfs/.github
Chris LuandGitHub 50464702d2 ci: key the Rust cargo cache on the toolchain that built it (#10568)
Key the Rust cargo cache on the toolchain that built it

The cache key was rust-<Cargo.lock hash> with a bare rust- restore prefix, so
one seaweed-volume/target survived across runner images. cargo tracks its own
inputs but not the runner's C toolchain, so build-script output for C
dependencies is reused even when the system libc underneath it changed.

That is how the Rust jobs got wedged: the cached aws-lc-sys objects reference
__isoc23_sscanf and __isoc23_strtol, symbols glibc only grew in 2.38, while the
jobs link on ubuntu-22.04 with glibc 2.35. Every job died at

  rust-lld: error: undefined symbol: __isoc23_sscanf
    >>> referenced by bcm.c in archive libaws_lc_sys-*.rlib

with nothing in the tree to explain it, and no amount of re-running helped
because the poisoned entry was hit every time.

Fold the glibc and rustc versions into the key so a toolchain change misses the
cache and rebuilds instead of producing an unlinkable target/.
2026-08-04 16:14:20 -07:00
..
2022-04-24 21:44:53 -07:00
2021-12-16 11:07:53 -08:00