Skip to content

Commit f11af13

Browse files
committed
ci(rumdl): cap CARGO_BUILD_JOBS=2 to fix riscv64 SIGABRT
The 0.2.75 build leg died compiling rumdl_lib itself with a glibc heap-corruption abort ("corrupted double-linked list") -> rustc signal 6 (SIGABRT) -> "Cargo build finished with exit status: 101", while the 0.2.76 leg succeeded compiling the identical tikv-jemalloc-sys/tikv-jemallocator v0.6.1 pin at the same time on the same 4-core riscv64 runner fleet. This matches gotcha 228: default cargo parallelism on this fleet can SIGABRT rustc under memory pressure when two heavy matrix legs compile concurrently, not a real dependency incompatibility. Same fix already used for build-deltalite.yml/build-connectorx.yml.
1 parent 0755ac2 commit f11af13

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

‎.github/workflows/build-rumdl.yml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ concurrency:
3030
permissions:
3131
contents: read # to fetch code (actions/checkout)
3232

33+
env:
34+
# Halves concurrent rustc processes on the 4-core riscv64 runner (gotcha
35+
# 228). rumdl_lib's own final compile is the heaviest step (blake3, chrono,
36+
# tokio, tower-lsp, rayon, notify, ... all enabled), and the 0.2.75 leg
37+
# SIGABRT'd there with a glibc heap-corruption abort ("corrupted
38+
# double-linked list") while the 0.2.76 leg was concurrently compiling the
39+
# same crate on the same runner fleet -- both matrix legs' Cargo.lock pin
40+
# the identical tikv-jemalloc-sys/tikv-jemallocator v0.6.1, so this is
41+
# memory contention at default parallelism, not a dependency regression.
42+
CARGO_BUILD_JOBS: 2
43+
3344
jobs:
3445
setup:
3546
uses: $/.github/workflows/_setup.yml

0 commit comments

Comments
 (0)