Repository navigation
Replies: 2 comments
|
Cross-link: same symptom on the desktop build, reported as #8142 — plus one extra data point that pins the mechanism down. We drove the sandbox package directly (same machine, same package, only the host process differs).
So the trigger is simply that the host/runner has no console: the confined child must share an existing one (the README cite is exactly right — This is consistent with your Full report + minimal repro script: #8142 (中文一句:#8142 的直接对照实验——宿主有控制台就正常、没有则全部 |
|
补充一个与 README「已知限制」不同的触发路径,见 #11223。 帖子里引的 保持
即限制性 SID 需要在 System32 上有只读权限;有写权限和无权限一样致命。第 94 行提到的保活组(登录 SID + Everyone)大概就是这条规律的一个实例,不过它不够——capability SID 本身仍会拖垮 loader。完整对照表和修复建议在 #11223。 |
Uh oh!
There was an error while loading. Please reload this page.
摘要
在 Windows 上,每当 DSH 执行命令类工具时,经常(非必现)弹出 Windows 对话框:
点确定关闭后,DSH 本体完全不受影响,可以继续正常使用。这个对话框是纯噪音。
值得注意的是它看起来像致命错误,实际不是——它只是某个子进程没能启动。
环境
0.1.7-rc.2(通过dsh plugin/runtime\bundle安装)v24.21.010.0.26200workspace-write复现
影响
已定位的代码路径(供参考)
1. Windows 上所有子进程都走
launchWindowsJob,且无条件带windowsHide: truepackages/subprocess/subprocess-local/lib/index.js:command来自spawnRunnerInvocation(),即沙箱 runner 包装器(由dsh-sandbox-windows-acl负责创建受限令牌)。2. 同一仓库的文档已把这条路径标记为会以
0xC0000142死亡packages/sandbox/sandbox-windows-acl/README.zh.md:第 119 行("已知限制"):
第 94 行:
英文版
README.md同位置亦有相同表述。3. libuv 对"隐藏窗口"提供的是三个独立标志,而非单一开关
libuv/include/uv.h:我的疑问(可能的修复方向)
launchWindowsJob里的windowsHide: true是否必要?如果沙箱 runner 本身不需要隐藏窗口,去掉它是否能避免该路径?
UV_PROCESS_WINDOWS_HIDE_CONSOLE/_GUI(对应 Node 的windowsHideConsole/windowsHideGUI,若可用),而不是会触发CREATE_NO_WINDOW语义的通用windowsHide?windowsHide与CREATE_NO_WINDOW其实并不等价?我无法确认的一点:我没有在本地验证 Node 的
windowsHide究竟映射为哪个UV_PROCESS_*组合(受测试环境限制,无法可靠地 spawn 进程验证),所以第 3 点是我的推断,请以源码为准。
补充说明
0xC0000142是进程创建阶段失败,近 30 天该日志中没有任何
node.exe或c0000142记录),所以用户侧很难自查A HUB.exe,它确实有独立的Qt5Core.dll崩溃),已排除;Codex 沙箱服务也用受限账户拉起自己的cua_node\node.exe,但机制不同,亦已排除All reactions