环境:Windows 11 (26200) · Node 24 · koffi 3.1.1/3.1.2,每次稳定复现。 #768
YuHong-Cray
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境:Windows 11 (26200) · Node 24 · koffi 3.1.1/3.1.2,每次稳定复现。
根因(已定位)
host/directory-picker-native的对话框 worker 在IFileOpenDialog::Show返回后调用CoUninitialize()时发生原生段错误,子进程在汇报结果前崩溃退出。该崩溃是环境相关而非代码逻辑问题:Show+CoUninitialize)MessageBoxW也能复现:任何模态对话框运行在 COM 初始化的 STA 线程后调用CoUninitialize即崩溃COINIT_MULTITHREADED(MTA)不会崩溃;koffi 3.1.1 与 3.1.2 均复现,非版本回归已做的修复(供参考)
worker 是每次 pick 临时拉起的子进程,汇报后立即退出,OS 会回收 COM apartment,因此省略
CoUninitialize是安全的。改动在:packages/host/directory-picker-native/src/win32-dialog-logic.ts(不再调用coUninitialize(),附注释说明)tsc -b通过;真实 host 端到端验证通过分支:
YuHong-Cray:Yuhong-Cray(commitdb2681fb4c),已推送:https://github.com/YuHong-Cray/deepseek-harness/tree/Yuhong-Cray请求
如果团队方便,可以考虑把这个崩溃在官方代码里一并处理(省略该 worker 里的
CoUninitialize,或等运行时修复后恢复)。需要完整的复现脚本/日志我可以补充。All reactions