Skip to content

fix(runtime): don't drop a crash during recovery unwind (fixes CI hang) - #352

Merged
caigee-cmd merged 1 commit into
mainfrom
fix/runtime-restart-backoff-test
Oct 22, 2026
Merged

caigee-cmd merged 1 commit into
mainfrom
fix/runtime-restart-backoff-test

Conversation

@caigee-cmd

Copy link
Copy Markdown
Owner

Root cause: an exit that arrives while recovering[id] is still set (recoverAccount has started the new process but not yet run its defer) was silently ignored, so the account never restarted. Under -race this made TestManagerEscalatesConsecutiveRestartBackoffSeparately wait forever for the third start (failed on ea144da / ac164d2).

Fix: queue the failure in recoverPending and re-enter recovery from the defer. Adds deterministic regression test TestManagerRecoversCrashDuringRecoveryUnwind (fails without the fix).

beginAccountRecovery ignored exits while recovering[id] was still set.
recoverAccount only clears it in its defer, after startAccount has already
registered the new process and started its watcher, so a process exiting in
that window was dropped and the account was never restarted. Queue the failure
and re-enter recovery from the defer. Fixes the race-test hang in
TestManagerEscalatesConsecutiveRestartBackoffSeparately.
@caigee-cmd
caigee-cmd merged commit 37d7a4a into main Oct 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant