anthropics / anthropics/claude-code
[BUG] Segmentation fault (SIGSEGV) on install and startup — CachyOS Linux
- Ngôn ngữ chính
- Python
- Star
- 145k
- Fork
- 23.1k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
### What's Wrong?
Both the native installer's own install step and every subsequent invocation of `claude` crash immediately with a segmentation fault (exit code 139). The crash is fully deterministic — it happens at the exact same instruction pointer address (`ip 0000000001d10458`) across separate runs. `error 4` decodes to a user-mode read of an unmapped page (null pointer dereference) at address 0 — not random memory corruption, but something specific to this environment.
Claude Code is built on Bun (JavaScriptCore engine). Segfaults at address 0x0 on startup are a known crash pattern in Bun/JSC, usually tied to JIT code generation or memory-mapping assumptions that don't hold on non-standard kernels. CachyOS ships a custom kernel/scheduler (BORE) and distro-level compiler optimizations that differ from mainstream distros (Ubuntu/Fedora/Debian), which may conflict with how the JIT allocates executable memory (W^X / RWX mappings). Disabling the JIT via `BUN_JSC_useJIT=0` did not prevent the crash, ruling out the most common JIT-specific workaround.
### What Should Happen?
Installer completes and `claude --version` / `claude doctor` run normally.
### Error Messages/Logs
```shell
Installer output:
Setting up Claude Code...
bash, linha 226: 7226 Falha de segmentação (imagem do núcleo gravada) "$binary_path" install ${TARGET:+"$TARGET"}
Installation was killed before it could finish (exit code 139).
dmesg output (two separate crashes, same instruction pointer both times):
[ 32.510354] claude[2745]: segfault at 0 ip 0000000001d10458 sp 00007ffc9cb40960 error 4 in 2.1.243[1b0f458,1953000+3b33000] likely on CPU 9 (core 4, socket 0)
[ 32.510367] Code: cc cc 55 48 89 e5 48 89 fe 48 8b 05 82 19 78 03 48 89 f9 48 c1 e9 1d 48 8b 84 c8 80 00 00 00 89 f1 c1 e9 0d 81 e1 f8 ff 00 00 <48> 8b 3c 08 48 85 ff 74 1e 48 8b 07 64 48 33 04 25 00 00 00 00 75
[ 652.461011] claude-2.1.243-[7226]: segfault at 0 ip 0000000001d10458 sp 00007ffe8e361c70 error 4 in claude-2.1.243-linux-x64[1b0f458,1953000+3b33000] likely on CPU 5 (core 6, socket 0)
[ 652.461024] Code: cc cc 55 48 89 e5 48 89 fe 48 8b 05 82 19 78 03 48 89 f9 48 c1 e9 1d 48 8b 84 c8 80 00 00 00 89 f1 c1 e9 0d 81 e1 f8 ff 00 00 <48> 8b 3c 08 48 85 ff 74 1e 48 8b 07 64 48 33 04 25 00 00 00 00 75
```
### Steps to Reproduce
1. Clean environment: remove any prior npm-based install (`npm uninstall -g @anthropic-ai/claude-code`, `rm -rf ~/.local/share/claude`)
2. Run the native installer:
```
curl -fsSL https://claude.ai/install.sh | bash
```
3. Installer downloads successfully, then crashes during its own `install` step (see Error Messages/Logs)
4. Running the installed binary directly (`claude --version`, `claude doctor`, etc.) crashes the same way
5. Try the known Bun/JavaScriptCore JIT workaround — does not help:
```
set -gx BUN_JSC_useJIT 0
curl -fsSL https://claude.ai/install.sh | bash
```
### Claude Model
None
### Is this a regression?
I don't know
### Last Working Version
_No response_
### Claude Code Version
2.1.243 (Claude Code)
### Platform
Anthropic API
### Operating System
Other Linux
### Terminal/Shell
Other
### Additional Information
Diagnostic checks already ruled out:
- Architecture (`uname -m`): x86_64 — matches downloaded binary
- libc (`ldd --version`): `ldd (GNU libc) 2.44` — glibc, not musl
- Memory (`free -h`): 15Gi total, 10Gi available — not an OOM kill (that gives exit 137, not 139)
- AVX support (`grep avx /proc/cpuinfo`): present
- Virtualization (`systemd-detect-virt`): none — bare metal, not a VM/container
- `BUN_JSC_useJIT=0` workaround: tried, no change
Environment: CachyOS Linux (`ID=cachyos`, Arch-based, custom BORE kernel/scheduler and distro-level compiler optimizations), shell: fish, arch: x86_64.
Note: while filling out this form, GitHub flagged several potential duplicates with what looks like the exact same crash signature (same instruction pointer `0x0000000001d10458` in `free`), including #89371, #89369, and #89360.
Happy to run further diagnostics (`strace`, `gdb` on a core dump, testing other `BUN_JSC_*` flags, testing on the mainline kernel instead of `linux-cachyos`) if maintainers can suggest specific commands.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Start with the native installer command curl -fsSL https://claude.ai/install.sh | bash and reproduce using claude --version or claude doctor on CachyOS. Review the repeated dmesg SIGSEGV entries at instruction pointer 0x1d10458 and compare behavior with BUN_JSC_useJIT=0 or a mainline kernel. Done means installation completes and both commands run without exit code 139.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- bun, fish, linux
- Lĩnh vực
- cli, operating-systems
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100