Skip to content

ci: pin Test job to ubuntu-24.04 (bun test breaks on ubuntu-latest kernel 6.17)#200

Closed
KB (KB-syntheticsciences) wants to merge 2 commits into
mainfrom
chore/bump-bun-1.3.14
Closed

ci: pin Test job to ubuntu-24.04 (bun test breaks on ubuntu-latest kernel 6.17)#200
KB (KB-syntheticsciences) wants to merge 2 commits into
mainfrom
chore/bump-bun-1.3.14

Conversation

@KB-syntheticsciences

@KB-syntheticsciences KB (KB-syntheticsciences) commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Problem

CI's Test job (bun test) has failed on every run since ~2026-07-11 — a runner-environment issue, not a code or test failure. ubuntu-latest moved to an image with kernel 6.17.0, on which Bun's test runner misbehaves:

  • Bun 1.3.5 (pinned): panic: Segmentation fault / SIGILL (Illegal instruction) before any assertion runs.
  • Bun 1.3.14 (latest): no crash, but mis-resolves an ESM named export (discoverOAuthProtectedResourceMetadata) from @modelcontextprotocol/sdk — a resolution error that does not reproduce on a clean local install.

Evidence it's environmental and repo-wide:

  • Only the bun test job is affected — bun run typecheck, bun install, and bun run build all pass on 1.3.5 on the same image.
  • An unrelated dependabot PR (Actions bump, zero source changes) crashes with the identical signature.
  • Both toolchains pass locally on an older kernel; re-running with a fresh cache reproduces identically (not a cache issue).

Fix

Pin the Test job to ubuntu-24.04, keeping the tested Bun 1.3.5 toolchain unchanged. This runs bun test on a kernel where it works, instead of chasing a Bun version that behaves on kernel 6.17 (1.3.14 is already the latest stable, and it's broken there too).

Net change vs main: a single runs-on line (+ explanatory comment). No toolchain change.

An earlier commit on this branch bumped Bun to 1.3.14; that is reverted here in favour of pinning the runner, since the root cause is the runner image, not the Bun version.

CI's Test job (bun test) has crashed on every run since ~2026-07-11 with a
Bun panic, not a test failure:

  Bun v1.3.5 (1e86cebd) · Linux Kernel v6.17.0 · glibc v2.39
  panic(main thread): Segmentation fault at address 0x18
  oh no: Bun has crashed. This indicates a bug in Bun, not your code.
  error: script "test" terminated by signal SIGILL (Illegal instruction)

The GitHub runner image now ships kernel 6.17.0, on which the pinned Bun
1.3.5 build hits an illegal-instruction crash before any test assertion
runs. It is environment-wide, not code-specific: an unrelated dependabot
PR (github_actions bump, zero source changes) crashes with the identical
signature.

Bump the pinned toolchain (packageManager + @types/bun catalog) to the
latest stable 1.3.14. Validated locally on 1.3.14: full backend suite
1162 pass / 0 fail, forced (no-cache) typecheck 7/7.
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openscience Ready Ready Preview, Comment Jul 22, 2026 5:33am

Request Review

Revert the Bun 1.3.5 -> 1.3.14 bump from the previous commit and fix the
root cause instead: ubuntu-latest moved to a kernel-6.17 image on which
'bun test' misbehaves (1.3.5 SIGILLs, 1.3.14 mis-resolves an ESM export
from @modelcontextprotocol/sdk). Every other CI job passes on 1.3.5 on
the same image; only the test runner on kernel 6.17 is affected, and an
unrelated dependabot PR crashed identically.

Pin the Test job to ubuntu-24.04, keeping the tested Bun 1.3.5 toolchain
unchanged. Net change vs main is the single runs-on line.
@KB-syntheticsciences KB (KB-syntheticsciences) changed the title chore: bump Bun 1.3.5 → 1.3.14 to fix CI SIGILL segfault ci: pin Test job to ubuntu-24.04 (bun test breaks on ubuntu-latest kernel 6.17) Jul 22, 2026
@KB-syntheticsciences

Copy link
Copy Markdown
Collaborator Author

Closing — this is not fixable from the repo.

Diagnosis: the CI Test job failure is an external GitHub runner-image regression, not a code, toolchain, or version issue. The Test job passed green for weeks (through Jul 11) on the same base commit and same Bun 1.3.5. The only thing that changed:

Runner image Kernel Test
Jul 11 (green) ubuntu24/20260705.232 6.17.0-1018-azure
Jul 22 (red) ubuntu24/20260714.240 6.17.0-1020-azure

GitHub bumped the ubuntu-24.04 image (~Jul 14), whose azure-kernel patch (-1018-1020) breaks Bun's test runner — a SIGILL on the JIT (Bun 1.3.5), and non-deterministic ESM-resolution failures from @modelcontextprotocol/sdk once past the crash (Bun 1.3.14). An unrelated dependabot PR fails identically, so it's repo-wide.

Neither a Bun bump (1.3.14 fails differently) nor a runner pin helps — GitHub serves only the latest patch of each image label, so the good .232 image can't be pinned. Expected to self-resolve when GitHub ships a fixed image or Bun ships a kernel-compat fix.

No repo change is warranted; parking this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant