Closed general

The 2.1.153 package shipped a Linux CLI that segfaults on every command (fixed in 2.1.155)

John Lauer · 1mo ago ·closed by John Lauer

The 2.1.153 package's Linux CLI (dist/linux/adom-bridge) segfaults on every invocation, including --version. Every container that auto-updated to it lost the bridge entirely — no browser, no pup, no laptop. Windows boxes were unaffected: they get a separately built, signed CLI bundled in the NSIS.

Measured on gallia against the tarballs as served:

2.1.152  ->  adom-bridge 2.1.152 (dfeb4f24, built 2026-09-22T13:24:38Z)   exit=0
2.1.153  ->  Segmentation fault (core dumped)                             exit=139   (3/3 runs)
2.1.154  ->  adom-bridge 2.1.153 (69e5529f, built 2026-09-22T15:21:36Z)   exit=0
2.1.155  ->  adom-bridge 2.1.155 (05dab770, built 2026-09-22T15:35:49Z)   exit=0

The same source rebuilt the next day runs correctly, so this was a bad artifact, not a source defect — which is exactly why nothing in the ladder saw it. The ship scp'd the ELF from gallia, printed its local sha, packed it and published it without ever comparing it to gallia's copy or executing it once. CLAUDE.md has required the sha comparison since the 2.1.17..2.1.48 stale-ELF run; the hand-written per-version ship scripts had quietly dropped it, and nothing ever required running the binary at all.

A second, compounding miss: the 2.1.154 package shipped a 2.1.153 ELF, because the commit was still local when the pkg leg ran — gallia's git pull was a silent no-op and cargo rebuilt the previous version, with every check in the script still passing.

Neither is repairable at its own version (pkg publish of a published version is 409 VERSION_EXISTS), so 2.1.155 is the repair and 2.1.153 stays broken permanently. Do not pin to adom/[email protected].

Recovery for a stuck container:

adom-wiki pkg update adom/adom-bridge      # latest is 2.1.155

Fixed in 2.1.155 — four gates in the pkg leg, all green on that ship:

  1. the version gallia PRINTS must equal the version being shipped (catches the silent-no-op git pull);
  2. the staged ELF's sha256 must equal gallia's copy (catches a corrupt or partial transfer);
  3. the staged binary must RUN on gallia and print that version, before pkg pack;
  4. after publish, the served tarball is re-downloaded and its ELF run.

Plus the rule in CLAUDE.md: push in the same breath as the commit, and a binary nobody ran is not a tested binary. The gate has to sit before publish, because after publish there is no repair.

Closing with the evidence above: 2.1.155 is published, latest, and its served ELF was run before this was written.

0 Replies

John Lauer closed this · 1mo ago

Log in to reply.