Skip to main content

resolve_superseded_generation

Function resolve_superseded_generation 

Source
fn resolve_superseded_generation(prior: ResumeState) -> Vec<ResumeEffect>
Expand description

Resolves a PRIOR generation’s still-unresolved tracking (AwaitingOutcome/ConfirmedRetry) that a fresh spawn is about to supersede.

reagentx P1 (round 5 on PR #2373): SpawnedWithResume/SpawnedFresh used to reset straight into the new generation’s state with NO effects at all — normally safe, since a new spawn_process call is only supposed to happen after the previous generation’s own ProcessExited already resolved it, but reachable out of order via persistent/queue.rs’s respawn_once_for_leftover_queue (a stall-triggered fallback respawn, on a completely different path than this module’s own confirmed-retry firing) racing the process-waiter task that would otherwise resolve the OLD generation first. Silently discarding a still-held error line lost a real user-facing error; the retry itself is dropped (not fired) rather than silently discarded-and-lost, because a brand-new spawn is already underway via a completely different code path — firing ANOTHER retry on top of it would double-spawn.