Skip to content

[bug][P3] 节点重启后 SSE 重投递遗留 hold-open 任务致 never-idle — test384 L8 慢速跑触发(产品语义/套件跨层状态两面待判) #458

Description

@vansin

现象

PR #454 门禁 round-5(head 37611b01,test384 L8)的慢速诊断跑(run2,bash -x)中,rename 通过后节点重启,随即通过 SSE 收到更早测试层故意遗留的 hold-open 任务并开始处理,节点因此永不 idle,harness 的 wait_for_idle 超时失败:

[wizard-openai] pending-replies: dropped 1 entry/ies — server-side app-level rejection
[wizard-openai] ← [api] (task/normal) Hold the ACP initialize request open until supervisor shutdown.
[wizard-openai] → processing [opencode]: Hold the ACP initialize request open...
[opencode-acp] session/new — ses_...
node failed to reach idle; safe log tail: ...

定性(两个可能面,请 owner 判)

  1. 产品语义面:节点重启后 hub 把旧 pending 任务重投递——这本身可能是预期语义;但注意日志同时出现 pending-replies: dropped ... server-side app-level rejection,重投递与 drop 的组合语义值得核一遍(是否会造成一任务两投或状态不一致)。
  2. 测试编排面:test384 早层(supervisor shutdown 层)故意留下 hold-open 任务,晚层(L8 rename 后重启)假设队列干净——跨层状态泄漏,套件应在层间清队列或用独立 network/alias 隔离。

仅在慢速跑(1/3)中触达该点(正常速度跑先败在 rename mode-0700 主 bug,见关联 issue),主 bug 修复后本问题可能成为 L8 的下一个稳定断点,建议先行处理或至少在修主 bug 的验证轮观察。

证据

docs/tests/p454-gates-round3/t384-round5-run2-xtrace-idle-fail.txt(masked)。环境同关联 issue:head 37611b0 · opencode 1.18.1 · .34/.26 preview 对。

关联

  • 主 bug:rename mode-0700(同批 round-5 发现,P1)
  • 套件可维护性(顺带):L8 裸 [[ ]]+set -e 失败零输出,排障需 xtrace;建议 fail() 包装每条断言。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions