pub enum SkipCause {
UpstreamFailed {
upstream: TaskId,
},
UpstreamErrored {
upstream: TaskId,
},
RuntimeCycle,
}Expand description
Reason a task was cascade-skipped per EXEC-011.
The upstream field on each variant carries the root failing
task identity, not the immediate hard predecessor: when A
fails and the cascade marks B (direct hard child) and C
(hard child of B), both record upstream = A.
Variants§
UpstreamFailed
A transitively-upstream task reached
RunState::Failed (per EXEC-009: non-zero exit,
non-executor signal, or executor-imposed timeout).
UpstreamErrored
A transitively-upstream task surfaced a RunTaskError
(executor-level failure: cache derive, spawn, wait,
stream-read, output-resolution, or store). Distinct from
Self::UpstreamFailed so the run summary can tell
“the upstream task ran and failed” from “the executor
could not even run the upstream task”.
RuntimeCycle
The task was identified as a member of a runtime cycle
detected by EXEC-019. The scheduler stops admitting
further tasks once the cycle is observed; cycle members
still in the ready set never start. The cycle’s full node
set and the offending edge appear in the run’s
crate::run_graph::RunGraphOutcome::invariant_violations
diagnostic; this per-task cause attributes the skip to
that workspace-level event without rewriting the cycle
node’s outcome to a misleading “failed” classification.