Skip to content

[Bug]: Stuck Session Recovery 机制双重失效 + Session 预处理每次耗时过长 #76038

@WS-Q0758

Description

@WS-Q0758

Bug 报告

🔴 核心 Bug:Stuck Session Recovery 机制双重失效

问题描述
Session 长时间停留在 `processing` 状态,事件循环完全阻塞,导致 Gateway 无响应,最终被 systemd 超时强杀。

两种情况均不恢复(根因)

情况 A — 有活跃工作时:
```
stuck session recovery skipped: reason=active_reply_work action=keep_lane
age=289s, 385s... 持续多分钟,系统选择"保持 lane 占用"不处理
```

情况 B — 无活跃工作时:
```
stuck session recovery no-op: reason=no_active_work action=none
lane=session:agent:main:main
系统什么都不做(action=none)
```

结果:无论哪种情况,系统都不执行真正恢复操作。Session 卡住直到 systemd 超时强杀。

触发频率:全天多次 SIGKILL,最长卡死 385 秒。

注:我们的 case 已在 #73581 提交过,这里是更详细的行为分析。


🔴 Session 预处理每次都极慢(176-307 秒)

问题描述:用户每次发消息,session 预处理耗时高达 3-5 分钟,体验极差。

实测数据(多次记录)

时间 prep 总耗时
10:02 183 秒
10:09 201 秒
10:19 307 秒(最长)
10:23 295 秒
10:31 281 秒
11:30 178 秒
12:03 178 秒

每次固定耗时拆解

阶段 耗时
system-prompt 加载 58-69 秒
stream-setup 建立 57-102 秒
core-plugin-tools 30-40 秒
bundle-tools 26-33 秒

核心问题:这些阶段每次都重复执行,没有缓存机制,导致用户每次发消息都要等 3-5 分钟才能得到首个回复。


🔴 问题三:4.29 升级导致配置丢失

触发场景:从 4.27 升级到 4.29 后,systemd override.conf 配置出现问题。

表现

  • `FEISHU_APP_SECRET is missing or empty`
  • Gateway 连续多次启动失败

建议:升级流程中保留用户自定义配置,避免覆盖 systemd override 文件。


建议修复方向

  1. Stuck Session:需要强制超时熔断——无活跃工作时强制释放 lane,有活跃工作时也应设置超时上限
  2. Session 预处理:预处理结果应支持缓存复用,无需每次重新加载
  3. 升级流程:保留用户 systemd override 配置

环境信息

  • OpenClaw 版本:v2026.4.27(4.29 也有同样问题)
  • 系统:Linux 6.17,node 22
  • 通道:飞书 WebSocket
  • 模型:bailian/qwen3.6-plus

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions