Skip to content

[business-logic] #1440-A's bgorphan terminal-status exit is dead code: it matches uppercase 'SUCCESS'/'FAILED'/'CRASHED'/'REMOVED' but the real CommandJobStatus values are lowercase 'completed'/'failed'/'cancelled'/'timed_out' (CRASHED/REMOVED don't exist at all) - completed jobs keep cycling false 'may have errored, hung' warnings until the 3-injection budget burns out, after which genuinely orphaned hung jobs stay silent forever (charter inverted); the test feeds a fictional 'Status: SUCCESS' sample so it only ever validated the dead branch #1524

Description

@topcheer

文件行号

internal/agent/bgorphan_detect.go L173(terminal-status exit:if status == "SUCCESS" || status == "FAILED" || status == "CRASHED" || status == "REMOVED"——L174-176 delete 生产不可达)对照 internal/tool/command_jobs.go L38-42(值域全小写:running/completed/failed/cancelled/timed_out——"CRASHED"/"REMOVED" 在值域中根本不存在)+ L609(fmt.Sprintf("Status: %s\n", snapshot.Status) 渲染 Status: completed)+ 三读取通道 internal/tool/command_job_tools.go L183/276-287/457(read_command_output/wait_command/list 全走此渲染)+ bgorphan_detect_test.go L253(喂虚构 "Status: SUCCESS\n"——渲染层永不产生的值,测试通过但只验证死分支)+ premature_success.go L183(同库先例:同类 Status 行正是 ToLower 后比较)

问题

#1440-A 修复是死代码——大写字面量 vs 小写真实值域零匹配

修复建议

L173 改为小写值域匹配(completed/failed/cancelled/timed_out)或复用 ToLower+premature_success.go:183 模式;同步把测试样本改为真实小写格式防再犯(自证陷阱)。

严重程度

High(误报+漏报双向、#1440 名义已修实际未修、测试虚构样本掩盖)


独立复核确认:值域原文、渲染链 609、三通道、四 vs 零交集、测试虚构样本、假警告循环+预算烧尽链、先例对照。

#1440-B 与其余四件验证结论

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions