Cypress 15.21.1 与 SIGILL (无效 opcode) 在 WSL2/ WSLg 上以固定的抵消方式相撞
作者: robertmartin15创建于 2026年9月15日更新于 2026年9月15日
• 当前行为
Cypress 二进制(Electron 37. 6.0)在与WSLg一起运行于WSL2时,会再三与**SIGILL(信号4,无效的opcode)相撞. 它在~24小时 ** (2026-09-14 13:15 – 2026-09-15 12:23)内发生了10次.
坠机在位置上是决定性的:每次陷阱在Cypress可执行文件(`0x4a83146')中的同值相抵时,跨越不同的PID和ASLR基址. 这说明有意流产( " CHECK () " / " IMMEDIATE CRASH ( " ) " )在铬/电子中,而不是CPU不相容(CPU支持AVX2)。
2起相撞事故的克内尔日志( " dmesg" ) :
[7215.487754] 陷阱: Cypress [2637] 陷阱无效 opcode ip:58fc54b9a146 sp:7ffc4d869da0 错误:0 在 Cypress [4a83146,58fc52861000+92d3000]
[7215.487988] Cypress: Cypress:潜在出乎意料的致命信号 4.
[7215.488355] CPU:10 UID:0 PID:2637 通信:Cypress 未被污染 6.18.33.2-微软-标准-WSL2 #1 PREEMPT(无)
[7215.492079] WSL (2645-CaptureCrash):捕捉相撞:30861可执行:!root!.cache!Cypress!15.21.1!Cypress! Cypress,信号:4,端口:50005
[8937.271931] 陷阱: Cypress [21391] 陷阱无效 opcode ip:5ac44a188146 sp:7ffc9605cf00 错误:0 在 Cypress [4a83146,5ac447e4f000+92d300]
[8937.272400] Cypress: Cypress:潜在的出乎意料的致命信号 4.
[8937.272426] CPU: 2 UID:0 PID:21391 comm: Cypress 未被污染 6.18.33.2-微软-标准-WSL2 #1 PREEMPT(无)
[8937.274907] WSL (21399-Captrack Crash):抓捕相撞:41251可执行:!root!.cache!Cypress!15.21.1!Cypress! Cypress,信号:4,端口:50005
** Side effect:** 由于WSL默认收集相撞垃圾堆,每起相撞在"LOCALAPPDATA"中生成了"Windows主机上"(Temp\wsl-crashes")的核心垃圾堆——每个垃圾堆最多为194GB(577GB共10个垃圾堆,在一个只有7GB RAM的VM上)",将主机的系统驱动器填充到99%. 垃圾场大小本身是WSL行为(参见微软/WSL#41314),但这使得这次崩溃对WSL用户特别有害.
设置细节 :
- Cypress作为 " root " (二进制缓存在 " /root/.cache/Cypress " )
- WSLg活动:
DISPLAY=:0'、Wayland DISPLAY=wayland-0' - 测试类型:e2e,通过`cypress open-config-file cypress.config.ts'启动
- 渴望的行为
Cypress不应该崩溃。 如果Electron击中了致命的内部检查(如沙盒,GPU或Wayland/X11在WSLg下显示问题),Cypress应该打印一个可读错误消息来解释原因,而不是用SIGILL来死亡.
QQ 复制的测试代码
繁殖环境:
- Windows 11带有WSL 2.7.14.0和WSLg 1.0.73.2
- Ubuntu 24.04.3 LTS Distro,作为 " root " 登录
- 在e2e项目中安装 " [email protected] " 并运行 " npx cypress open " (或 " npx cypress run " )
- Cypress在一段时间后与SIGILL相撞;检查 " dmesg QQ grep Cypress"
Cypress 版本
15.21.1 (电37.6.0,捆绑的节点22.1.9.0)
调试日志
贝壳
其他情况
** 环境细节**
- WSL版本:2.7.14.0
- 内核: 6.18.33.2- 2个
- WSLg:1.0.73.2
- MSRDC: - 维基月球在线解说-MSRDC:
. . . . . . .
内容来源: cypress-io/cypress