[BUG] Silent SIGSEGV (SI_KERNEL, addr=NULL) — CPU reports AVX2 but osxsave absent — regression 2.1.205→2.1.215
What's Wrong?
The linux-x64 native binary (VS Code extension bundle) crashes with a silent SIGSEGV
on every invocation, including claude --version. No Bun banner or error message is
printed before the crash — the process dies before it can output anything.
Confirmed regression window: v2.1.205 works correctly on this exact machine.
v2.1.215 crashes 100% of the time. Downgrading the VS Code extension to 2.1.205
resolves the issue completely, no other changes made.
Environment
- OS: Oracle Linux 8 (oracle21c)
- Kernel: 4.18.0-553.144.1.el8_10.x86_64
- glibc: 2.28
- VS Code extension: anthropic.claude-code
- Crashes: 2.1.215-linux-x64
- Works fine: 2.1.205-linux-x64
- Binary path: ~/.vscode-server/extensions/anthropic.claude-code-<version>-linux-x64/resources/native-binary/claude
- Virtualization: KVM/OCI guest (exact hypervisor config unknown from guest side)
CPU flags
- avx: present
- avx2: present
- xsave: present
- osxsave: absent
Reproduction (2.1.215)
$ /path/to/native-binary/claude --version
Segmentation fault (core dumped)
strace output (tail, 2.1.215)
futex(0x52a5b1c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x52a5b28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---
+++ killed by SIGSEGV (core dumped) +++
Analysis
si_code=SI_KERNEL with si_addr=NULL (rather than a normal fault address) suggests
this isn't a typical memory-access bug. CPUID reports AVX2 support, but CR4.OSXSAVE
is never enabled by the guest kernel/hypervisor, so the XSAVE area for YMM registers
was never initialized. When the Bun runtime executes an AVX2 instruction, the kernel
cannot resolve the resulting exception cleanly, producing this silent crash instead
of a clear "Illegal instruction" (SIGILL) error like the already-documented
non-AVX2-CPU case.
This differs from the known #37065 / #24562 / #20611 SIGILL-on-no-AVX2 issues: here
the CPU/hypervisor does advertise AVX2, but the OS-level XSAVE enablement is
missing, so the binary fails in a different (and much harder to diagnose) way.
Since 2.1.205 runs fine on the identical machine/kernel/CPU, something changed
between 2.1.205 and 2.1.215 (a newer Bun build, a different AVX2 code path, or a
stricter runtime check) that now triggers this specific CPU/kernel edge case. This
mirrors the pattern in #76241, where a Bun baseline-build change between adjacent
versions (2.1.205 → 2.1.206) introduced a SIGSEGV regression on a different glibc
version — this may be the same underlying build change manifesting on a different
platform edge case.
Expected behavior
Ideally the binary would detect the missing osxsave flag before executing AVX2
instructions and fail gracefully with a clear message (similar to the "Illegal
instruction" / "CPU lacks AVX support" messages already shown for other CPU
mismatches), rather than crashing silently with no diagnostic output.
Workaround found
- Downgrading the VS Code extension to 2.1.205 resolves the crash entirely.
- Running the extension locally via
"remote.extensionKind": {"anthropic.claude-code": ["ui"]} also avoids the crash,
since the native binary then runs on the local machine instead of the remote
OL8/KVM guest.
Additional info
Happy to provide the core dump, full /proc/cpuinfo, or test other binary versions
(e.g. bisecting 2.1.206–2.1.214) if useful for triage.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗