fix: disable Bun JIT in smoke-gvisor-claude to prevent SIGSEGV/SIGABRT#6261
Conversation
Claude Code's Bun/JSC JIT compiler triggers SIGSEGV/SIGABRT under gVisor due to incompatible W^X memory operations. Setting BUN_JSC_useJIT=0 forces interpreter mode, which is stable under gVisor. - Add --env BUN_JSC_useJIT=0 to the AWF command in smoke-gvisor-claude.lock.yml - Update postprocess-smoke-workflows.ts to re-inject on recompile - Add smoke-gvisor-claude-workflow.test.ts to validate the fix persists Reference: https://bun.sh/docs/runtime/gvisor Closes #6260
|
@copilot only disable for running in gvisor. also awf should be run without sudo by default. make sure that the environment variable is also set in the default mode w/o sudo |
There was a problem hiding this comment.
Pull request overview
Disables Bun’s JIT in the gVisor Claude smoke workflow to avoid runtime crashes.
Changes:
- Passes
BUN_JSC_useJIT=0to AWF. - Preserves the flag during workflow regeneration.
- Adds regression checks for the flag and gVisor runtime.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/smoke-gvisor-claude.lock.yml |
Disables Bun JIT in the compiled workflow. |
scripts/ci/postprocess-smoke-workflows.ts |
Injects the setting after compilation. |
scripts/ci/smoke-gvisor-claude-workflow.test.ts |
Validates the compiled configuration. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 2
- Review effort level: Medium
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
✅ Copilot review passed with no inline comments. @copilot Add the |
Addressed in 60c6d7e. The Bun JIT env injection now only applies when the workflow content indicates gVisor, and the postprocess coverage now includes both |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✅ Build Test Suite completed successfully! |
|
❌ Smoke Copilot BYOK AOAI (api-key) reports failed. AOAI BYOK (api-key) mode investigation needed... |
|
✅ Contribution Check completed successfully! |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
Smoke Test: API Proxy OpenTelemetry Tracing
All scenarios pass. OTEL tracing integration is fully functional. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: PAT Auth Validation
Overall: PARTIAL — Pre-step template variables were not substituted. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Copilot BYOK (Direct) — PASS
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY) via api-proxy → api.githubcopilot.com
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Smoke Test: Services Connectivity❌ Redis (port 6379): Network is unreachable Overall: FAIL — Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🦎🏗️ gVisor Build Test Results
Overall: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "host.docker.internal"See Network Configuration for more information.
|
🦎 gVisor Smoke Test Results
Overall: PASS (gVisor runtime confirmation pending future plumbing) /cc Warning Firewall blocked 2 domainsThe following domains were blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "example.com"
- "host.docker.internal"See Network Configuration for more information.
|
Smoke Test Results
Overall: PASS (connectivity checks passed; file test skipped — pre-step not run in this context) PR author: Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
|
🦎🔮 gVisor + Codex runtime: confirmed Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "172.30.0.1"See Network Configuration for more information.
|
🔥 Smoke Test: Docker Sbx — PASS
Overall: PASS
|
Gemini Engine Smoke Test Results
Overall Status: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
🐳🏗️ Docker Sbx Build Test Results
Overall: FAIL
|
Chroot Version Comparison Results
Result: Not all tests passed — Python and Node.js versions differ between host and chroot. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
🦎🟣 gVisor + Claude Smoke Test
Overall: PARTIAL — connectivity, file I/O, and isolation pass; gVisor runtime marker not present. Warning Firewall blocked 2 domainsThe following domains were blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "example.com"
- "host.docker.internal"See Network Configuration for more information.
|
|
🐳🔮 Docker sbx + Codex\n✅ GitHub MCP list PRs call succeeded\n✅ File artifact read back: Docker sbx+Codex smoke test passed at Wed Jul 15 16:46:50 UTC 2026\n❌ example.com returned 200, not blocked\nOverall: FAIL
|
|
🐳🟣 Docker sbx + Claude
Overall: FAIL
|
|
fix: disable Bun JIT in smoke-gvisor-claude to prevent SIGSEGV/SIGABRT Warning Firewall blocked 2 domainsThe following domains were blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"
- "registry.npmjs.org"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
Claude Code (Bun + JavaScriptCore) crashes with
SIGSEGV/SIGABRTunder gVisor because JSC's JIT compiler requires W^X memory operations that gVisor's restricted syscall surface blocks.Changes
smoke-gvisor-claude.lock.yml— adds--env BUN_JSC_useJIT=0to the AWF invocation, forcing JSC into interpreter mode inside the gVisor sandbox:scripts/ci/postprocess-smoke-workflows.ts— injects--env BUN_JSC_useJIT=0wheneversmoke-gvisor-claude.lock.ymlis regenerated viagh aw compile, with an idempotency guard so repeated runs don't double-inject.scripts/ci/smoke-gvisor-claude-workflow.test.ts(new) — asserts the flag is present in the compiled lock file and the gVisor container runtime is configured, preventing silent regressions on recompile.