Skip to content

fix: escalate ProcessInfoNode construction failures - #616

Open
shegazyy wants to merge 1 commit into
eclipse-score:mainfrom
Valeo-S-CORE-Organization:fix/escalate-process-info-node-construction-failures
Open

fix: escalate ProcessInfoNode construction failures#616
shegazyy wants to merge 1 commit into
eclipse-score:mainfrom
Valeo-S-CORE-Organization:fix/escalate-process-info-node-construction-failures

Conversation

@shegazyy

@shegazyy shegazyy commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Previously, if alive supervision construction failed inside ProcessInfoNode's constructor, the failure was logged and startup continued anyway with a null supervision handle.

Convert ProcessInfoNode's constructor to a Create() factory that returns an error (kErrorBeforeReady) if alive supervision setup fails. Propagate that failure through Graph::Create() (also converted from a plain constructor to a factory, since building the dependency graph can now fail) up to ProcessGroupManager::initializeProcessGroups(), which already fails startup on false.

Also fixes a latent bug found while adding this: ProcessInfoNode's move constructor did not preserve start_tries_ or termination_result_, silently resetting configured restart attempts to 1 on every move. This was previously undetectable because the move constructor was never exercised on ordinary construction; Create() now moves through it at least once.

Fixes #606

Previously, if alive supervision construction failed inside
ProcessInfoNode's constructor, the failure was logged and startup
continued anyway with a null supervision handle.

Convert ProcessInfoNode's constructor to a Create() factory that
returns an error (kErrorBeforeReady) if alive supervision setup fails.
Propagate that failure through Graph::Create() (also converted from a
plain constructor to a factory, since building the dependency graph
can now fail) up to ProcessGroupManager::initializeProcessGroups(),
which already fails startup on false.

Also fixes a latent bug found while adding this: ProcessInfoNode's
move constructor did not preserve start_tries_ or termination_result_,
silently resetting configured restart attempts to 1 on every move.
This was previously undetectable because the move constructor was
never exercised on ordinary construction; Create() now moves through
it at least once.
@shegazyy

shegazyy commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Hello @WilliamRoebuck I applied the needed changes and ready for review whenever you have the time>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

Escalate ProcessInfoNode construction failures

1 participant