Repository navigation
[Bug] macOS 桌面版:内置更新器因 host 优雅退出超过 10 秒而拒绝安装(即使最终 exit 0) #11187
Replies: 2 comments
|
macOS 侧复现 + 根因:host 收到 shutdown 后从不调用 环境:macOS(arm64)、桌面端 复现到的报错与你们一致: 隔离复现(不经过更新器):直接启动打包内的 desktop-host 入口(
也就是说:不是 koffi 本身,而是任何一个被引用的句柄都能复现(定时器、socket、watcher、FFI 回调通道)。koffi 只是 Windows 上必然存在的那个。 代码位置(打包的 0.2.1-rc.5):
影响不止更新:普通 Cmd+Q 也是同一条路径——壳层先 hide 窗口,再等 建议修复(一行):在 实测效果:我在本机按这个思路实现(打包的 |
|
补充 macOS 侧独立实测数据(rc.3→rc.5 内置更新),佐证楼上的根因定位。
|
Uh oh!
There was an error while loading. Please reload this page.
环境
nightly,feedhttps://download.deepseek.com/dsh-desk/feeds/mac-arm64/现象
点击「检查更新」后,包下载完成,随后弹窗:
「查看技术详情」:
100% 复现:完全退出 App(Cmd+Q,确认 Dock 图标消失、
pgrep -f "DeepSeek Harness"无输出)后重开,不进任何会话、不跑任务,直接点更新 —— 仍然报同样的错。关键证据:下载是成功的,失败在「安装前停机」
~/Library/Caches/@deepseek-aidsh-desktop-updater/pending/deepseek-harness-0.2.1-rc.3-mac-arm64.zip,347,702,586 字节,已完整存在nightly-mac.yml声明完全一致:0tCeP/zLGLtsH+S4BD4TIyRJ8TwRhh7xaJprTMOUoEfj7hYJFC3G5l6nl/2zCTS41MeE9k+KRN19RE9sqX6goQ==pending/update-info.json中isAdminRightsRequired: false,/Applications可写,无需 sudo所以问题不在下载/校验,而在安装前对 host 进程的停机判定。
代码定位(app.asar 内
DesktopHost.stop)报错字段的实际含义:
shutdown acknowledgedtrueexit/signal0/nullgraceful deadline exceededtrue即:host 是干净退出的,仅因为超过 10 秒宽限期就被判定为「不干净」,更新被回滚。
建议修复
1e4放宽到 30s(或做成可配置),夜间构建在较慢机器/插件较多时 10s 明显不够;shutdownCompleted === true && child.exitCode === 0(即最终是否正常退出),不要用「是否在 10s 内退出」作为失败条件;目前的绕过方式(已验证可用)
退出 App 后手动解压已下载的包覆盖:
升级到 0.2.1-rc.3 后运行正常,
codesign --verify --deep --strict通过。All reactions