已开启
[Bug] CLI 命令异常时资源未清理(result_callback 不触发) #159
zhangzj创建于  9月23日
zhangzj
zhangzj
9月23日 创建

缺陷描述

cli/main.py 通过 @cli.result_callback() 注册 cleanup() 来调用 manager.shutdown()。Click 的 result_callback 仅在命令正常返回后触发;当命令抛出 ClickException/Abort/其它异常时不会执行,manager.shutdown() 被跳过。

影响

  • CLI 异常退出时数据库连接(SQLAlchemy engine / aiosqlite)未释放,造成连接泄漏
  • 重复运行 CLI 时资源累积

文件位置

cli/openjiuwen_runtime/cli/main.py 第 111-116 行(cleanup)、第 188 行附近

修复建议

  • 将 manager.shutdown() 提取为幂等函数,并通过 atexit.register 兜底;
  • result_callback 也改为调用该幂等函数,避免重复关闭。

验证

SQLAlchemyHandler.disconnect() 通过 if self.engine: await self.engine.dispose() 实现,重复调用安全。

likedislike
zhangzjzhangzj
9月23日 添加了label:bug
openJiuwen-bot成员
9月23日 评论:

欢迎来到 openJiuwen 社区

Hey @gp1000 , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

likedislike
zhangzjzhangzj
9月23日 关联了pull request:fix: 补充子进程超时、修复部署器 fd 泄漏与 CLI 资源清理