Cyclic service-dependency detection in service.start #63
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#63
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
When a user creates services with circular
requires(A→B→A), the supervisor should refuse to start them with a clear error. Today there is no cycle check: starting either side of the cycle leaves the system in an unspecified state.A test for this already exists but is
#[ignore]d:tests/integration/tests/dependencies.rs:91—test_circular_dependency_error—#[ignore = "cyclic dependency detection not yet implemented"]Acceptance
service.start(and probablyservice.setor both — see Notes) returns anErrwhen the dependency graph reachable from the target service contains a cycle.cyclic dependency: svc-a -> svc-b -> svc-a.test_circular_dependency_erroris un-ignored and passes.test_chain_starts,test_conflict_blocking, or other dependency tests.Notes / scope
service.set(refuse the bad config up front) vsservice.start(allow temporarily-broken graphs and only refuse when actually starting). The existing test only assertsservice.startfails, so start-time is the minimum bar.Follow-up to #56 — found while auditing why 21 tests are skipped.