V8 Maglev JIT causes STATUS_STACK_BUFFER_OVERRUN (0xC0000409) on Windows 11 Insider build 26200
还没有人认领这个 Issue。
- 主要语言
- JavaScript
- 星标
- 122k
- 派生
- 37.3k
- 平均合并
- 4 天 2 小时
- 30 天内合并 PR
- 283
描述
What happened?
Node.js processes crash with exit code -1073740791 (0xC0000409 / STATUS_STACK_BUFFER_OVERRUN) within 20-70 seconds of startup when running a non-trivial application (WebSocket server with HTTP, Telegram bot polling, and plugin system) on Windows 11 Insider (Canary channel).
The crash is caused by V8's Maglev JIT compiler tier. Workaround: --no-maglev flag eliminates the crash entirely.
Reproduction
Environment:
- Node.js: v25.8.0
- V8: 14.1.146.11-node.20
- OS: Windows 11 Pro for Workstations, Insider Canary build 10.0.26200.0
- Arch: x64
Steps:
- Run a long-lived Node.js application that uses
fetch(), WebSocket, and timers on Windows 11 Insider build 26200 - Process crashes with exit code
-1073740791(0xC0000409) within 20-70 seconds - No JavaScript stack trace — the crash is in native JIT-compiled code via
__fastfail
Flags tested:
| Flag | Crash? | fetch() works? |
|---|---|---|
| (none) | Yes — crashes in 20-70s | Yes |
--jitless |
No | No — undici fetch broken |
--no-maglev |
No | Yes |
--no-turbofan |
No | Yes |
--no-maglev is the minimal workaround — disabling only the Maglev tier prevents the crash while keeping TurboFan and fetch() functional.
Additional context:
- A bare Node.js HTTP server (
http.createServer) does NOT crash — the issue requires enough code to trigger Maglev optimization - Crash bypasses Windows Error Reporting (
__fastfail/ SEH) - Windows Event Viewer shows the Insider build has kernel-level instability (BlueScreen events, VIDEO_ENGINE_TIMEOUT_DETECTED), suggesting stricter CFG enforcement
- The same application runs without issues on Windows Server 2019 and stable Windows builds
Expected behavior
Node.js should not crash with STATUS_STACK_BUFFER_OVERRUN. Maglev-compiled code should respect Windows CFG/CET enforcement on Insider builds.
Workaround
Pass --no-maglev as a command-line flag (cannot be set via NODE_OPTIONS):
node --no-maglev app.js
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
未确定源文件或测试。首先在 Windows 11 Insider build 26200 上使用 Node.js v25.8.0 重现崩溃,并比较默认执行与 --no-maglev 和 --no-turbofan 下的执行结果。完成标准是确定已确认的 Maglev/Windows 原因,并在不需要 --no-maglev 的情况下阻止 STATUS_STACK_BUFFER_OVERRUN。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript, nodejs
- 领域
- backend, operating-systems
- Issue 类型
- 缺陷
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100