[fix][evaluation] keep experiment status Terminated after retrying items post-termination - #670
shemingxin66 wants to merge 1 commit into
Conversation
|
|
1 similar comment
|
|
…ems post-termination 实验被终止后手动重试特定 item 时的两个状态机 bug: 1. 终止时的 stats 计算与写入(CompleteExpt)发生在 in-flight item 被标 Terminal 之前,导致 stats 表残留虚高的 processing_cnt(≈终止瞬间并发数)、少算 terminated_cnt。重试 1 个 item 后页面显示「执行中 = 并发数+1」。 修复:删除提前的 UpdateByExptID;在终止收口(terminateItemTurns)之后按 item 主表现值重算 CalculateStats 再落 stats 表。仅在真正终止了行时重算 (statsDirty),正常完成/Failed 路径复用首次快照、不多做扫描。 2. 重试 item 完成后收敛判据(原 design D5)忽略 terminated 行,把仍含终止 item 的实验塌成 Success/Failed。 修复:收敛判据新增最高优先级分支——只要 TerminatedItemCnt>0 一律收敛为 Terminated,前端仍分别展示 成功/失败/执行中/待执行/终止 各计数。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
92ec0b3 to
a3addf4
Compare
Codecov Report❌ Patch coverage is
❌ Your patch check has failed because the patch coverage (76.47%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage. @@ Coverage Diff @@
## main #670 +/- ##
=======================================
Coverage ? 78.83%
=======================================
Files ? 707
Lines ? 87902
Branches ? 0
=======================================
Hits ? 69298
Misses ? 14611
Partials ? 3993
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
背景
实验被终止后,用户手动重试特定 item 时,后端状态机出现两个不符合预期的表现(会话 task-746aac4bd6235c89a69534a7dec0b9a0):
根因与修复
bug#1(数量脏值):
CompleteExpt里 stats 的计算与写入(CalculateStats+UpdateByExptID)原本发生在 in-flight item 被标记为Terminal(terminateIncompleteItemRunLogs/terminateItemTurns)之前,导致 stats 表残留虚高的processing_cnt(≈终止瞬间的并发数)、少算terminated_cnt。修复:删除提前的
UpdateByExptID;在终止收口之后,按 item 主表现值重算CalculateStats再落 stats 表。仅在真正终止了行时(statsDirty)才重算,正常完成 / Failed 路径复用首次快照、不多做一次全量扫描。bug#2(收敛判据):终态推导判据(原 design D5)刻意排除
TerminatedItemCnt,导致仍含终止 item 的实验被误判为 Success/Failed。修复:收敛判据新增最高优先级分支——只要
TerminatedItemCnt > 0一律收敛为Terminated,前端仍分别展示 成功/失败/执行中/待执行/终止 各计数(DTO 已透传五类)。影响面
modules/evaluation/domain/service/expt_manage_execution_impl.go一个实现文件 + 2 个测试文件,74 增 30 删。CompleteExpt,一处修复即同时覆盖。验证
go build ./modules/evaluation/...✅go vet✅ /gofmt✅go test ./modules/evaluation/domain/service/全包通过(260s ok)✅🤖 Generated with Claude Code