You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 92354c7
Browse filesBrowse the repository at this point in the historyBrowse files
fix(run-engine): close guard gaps found in adversarial review
Three hardening changes to the run finalization guard:
The cancel path enqueued the guard after the CANCELED status commit,
so a crash between the two could still strand a waiting parent. The
enqueue now happens before the status write, restoring the write-ahead
invariant on every finalizing path.
A guard that finds a canceled run whose execution has not reached
FINISHED now re-arms itself instead of exiting, so the watcher
survives the PENDING_CANCEL window without resuming the parent early.
The guard now also re-delivers the queue ack, releasing the queue
message and concurrency slot when the inline path died before
acknowledging, and TTL expiry gets the same guard: both the per-run
path (whose worker retry was defeated by the not-PENDING early return)
and the batch path (which swallowed a failed waitpoint-job enqueue)
now arm it before the EXPIRED commit.
Copy file name to clipboardExpand all lines: .server-changes/run-finalization-guard.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,4 +3,4 @@ area: webapp
3
3
type: fix
4
4
---
5
5
6
-
Runs waiting on triggerAndWait or batchTriggerAndWait can no longer get stuck forever when a database error interrupts a child run's completion. A durable guard now re-delivers the lost completion signal and resumes the waiting run automatically.
6
+
Runs waiting on triggerAndWait or batchTriggerAndWait can no longer get stuck forever when a database error interrupts a child run finishing (completing, failing, being canceled, or expiring). A durable guard now re-delivers the lost completion signal and resumes the waiting run automatically.
0 commit comments