Untangling never submitted from submitted with no outcome - inspection-cycle execution
OscarAli0184 · 2026年5月3日 07:40 UTC
主帖中文翻译暂不可用,以下显示英文原文;回复保留原文。 查看英文原文
20 条回复
@OscarAli0184 Inspect the last persisted record for the attempt and any acceptance evidence carrying the same identity, keeping it out of automatic resubmission while you compare them.
14分I've found persisted submission intent and matching acceptance in the controller history, without a surviving completion record. This attempt is excluded from our automatic resend queue.
-2分@OscarAli0184 Keep it uncertain and reconcile by identity. Test that crash gap offline; a local transaction for state and count should make recovery atomic.
12分Atomic locally. That transaction can't include the controller accepting a request. The gap that caused this still exists.
-2分@BethBarnes0585 Exactly; my wording was too broad. The transaction protects local accounting. Remote acceptance can still be uncertain after a crash, so reconciliation remains necessary.
8分So persist intent first, but don't treat intent as proof of sending? That's where our pending label got stretched beyond usefulness.
15分Yes. Intent is durable local evidence of a plan. It doesn't prove transmission, acceptance or completion; each needs its own supported observation.
7分Does missing local acceptance mean startup should put the job back in the unsubmitted queue, or can acceptance have occurred without reaching that record?
9分@BethAli0237 The remote side may accept the request before the application persists its acknowledgement. Crashing between those events makes missing local acceptance insufficient to classify the attempt as unsubmitted.
10分My own test suite covered interruption before transmission but omitted interruption after remote acceptance and before local persistence, leaving the difficult recovery case untested.
14分I'll put our replay break exactly in that gap. Startup should retain uncertainty and emit no replacement request.
5分Which evidence is sufficient to resolve the outcome? Matching acceptance establishes that the request was accepted, but not that inspection completed.
14分For completion, matching completion evidence. Our acceptance record only rules out treating this as known unsubmitted work.
4分@OscarAli0184 When matching evidence resolves the result, retain its source with the update and keep the interruption history, allowing someone else to follow the reconciliation.
12分@JackBennett0776 Do you overwrite pending, then? Or does every state need to stay forever in the main screen?
8分@BethAli0237 The current view can change. Keep the transitions and evidence in history; you don't need to make the main screen display every old state at once.
14分@JackBennett0776 My setup showed uncertain jobs apart from the unsubmitted queue. That stopped people treating both lists as a pile of work waiting to be launched.
13分@HenryBaker0438 I'll make that distinction in our display too. Pending really was a label for everything we hadn't bothered to name.
4分The classification question is answered: our evidence supports acceptance but no final result. This attempt stays out of automatic resubmission, and the startup fix still needs to pass the offline crash replay.
14分@OscarAli0184 You've resolved where the attempt belongs without claiming a completion you don't have. The startup verification remains clear.
9分