跳到正文

排错

修复 DSH 的 Cordis startup failed

处理 Cordis startup failed 前,需要先拿到第一个底层错误、插件名称和 profile 上下文。

01

找到第一个因果错误

从最后一条启动失败向上阅读,记录第一个缺失模块、无效配置、权限失败或抛出的异常。

  • 保留完整 stack
  • 记录当前 profile
  • 区分警告和首个致命错误

02

每次只停用一个嫌疑插件

在可删除的 profile 中复现,只移除第一个错误指向的插件。大范围改动会隐藏原因并增加回滚难度。

  • 从最小 profile 开始
  • 保持相同依赖版本
  • 逐个重新启用插件

核对来源

来源用于核对当前事实,不代表来源方认可本站结论。

Cordis startup failed常见问题

Cordis 是什么,为什么会报 Cordis startup failed?

Cordis 是 DSH 依赖的插件运行时,负责加载插件、连接依赖并启动它们。这条报错表示加载流程中断了,不代表你的 DSH 安装损坏。

报错里哪一行才是关键?

第一行,不是最后一行。收尾那句汇总信息价值最低,它上面第一个缺失模块、非法配置值或抛出的异常,才是你要修的东西。

怎么定位是哪个插件搞挂了启动?

从最小 profile 开始,一次启用一个插件直到复现。第一个 stack frame 里出现的插件是首要嫌疑,但也可能是它依赖的东西根本没加载成功。

排查期间还能用原来的 profile 吗?

能,而且应该在一份可丢弃的副本里复现。原 profile 不动,一方面手上的活不耽误,另一方面还能拿正常的和坏掉的做对比。

为什么 Cordis startup failed 只是偶尔出现?

偶发失败通常来自依赖网络的初始化、插件之间的竞态,或者上次崩溃留下的锁文件。要专门抓一次失败运行的日志,成功那次的日志看不出原因。