Test that a carried module takes its lead's pass before its step is read (hq issue 335 review)
Without the reorder the passed build's walk stopped on the first machine's later silence; the guard that caught it is now said to be one.
This commit is contained in:
@@ -977,8 +977,12 @@ func failFirstSend(ctx context.Context, open *stores, p *inventory.Plan, module
|
||||
}()
|
||||
g := state.Gate
|
||||
if g != nil && g.Verdict == inventory.GatePassed {
|
||||
// **A build that passed its gate is never put back for what came after** (novox/hq issue 335): its
|
||||
// verdict stands; the plan stops, and says why, but the build is not marked failed.
|
||||
// **A guard: a build that passed its gate is never put back for what came after** (novox/hq issue 335).
|
||||
// Not reached while nextRollout answers a passed gate with the rest to send, and advanceOnce reads it
|
||||
// after a carried module takes over its lead's pass; it is here so that a path added later cannot
|
||||
// overturn a verdict. If it is reached, the plan stops and says why, and the build is not marked failed.
|
||||
// The module is left a stopped rollout (its Why said, sent first and not to the rest), which
|
||||
// `plans retry` takes: it sends the first machine again, and the passed gate then sends the rest.
|
||||
state.Why = "passed its gate; its walk then stopped: " + why
|
||||
p.State = inventory.PlanFailed
|
||||
p.Note = fmt.Sprintf("%s passed its gate on %s in tier %d (%s) and is kept; its walk stopped after: %s",
|
||||
|
||||
Reference in New Issue
Block a user