Job dependency enforcement: block child jobs when parent fails #64
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_proc#64
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
A job whose dependency has reached
failedshould not run — it should be markedfailedorcancelled, not wait forever. Today the supervisor's job dependency code does not enforce this: a child whosedepends_onparent failed will still execute (or hang inwaiting).A test already exists but is
#[ignore]d:tests/integration/tests/jobs.rs:297—test_job_failed_dependency_blocks—#[ignore = "job dependency enforcement (blocking on failed deps) not yet implemented"]Repro (from the test)
#!/bin/bash\nexit 1.depends_on: [{action: parent_id, dep_type: requires}].failed.waiting → cancelledorwaiting → failed, neversucceeded, and the child's script does NOT execute.Acceptance
requiresdependency on a parent that reachesfailedis itself transitioned tofailed(orcancelled) without running its script.dependency <id> failed.test_job_failed_dependency_blocksis un-ignored and passes.test_job_graph(the success-path equivalent) or other jobs tests.Notes / scope
crates/hero_proc_server/src/supervisor/— wherever the dep-resolution / scheduling decision is made when a parent transitions to a terminal phase.dep_typeisrequiresfor now; if/when other dep types exist (e.g.after) decide their semantics separately.Follow-up to #56.