Skip to content

Add supervision to the new Component class - #779

Open
danth wants to merge 6 commits into
eclipse-score:mainfrom
etas-contrib:pin-split-supervision
Open

danth wants to merge 6 commits into
eclipse-score:mainfrom
etas-contrib:pin-split-supervision

Conversation

@danth

@danth danth commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Add supervision setup to the new Component class.

This is a continuation of #705.

@danth
danth requested a deployment to workflow-approval October 12, 2026 15:40 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:40 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:40 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:40 — with GitHub Actions Waiting
@danth danth changed the title Add supervision to new Component class Add supervision to the new Component class Oct 12, 2026
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:45 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:45 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:45 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 12, 2026 15:45 — with GitHub Actions Waiting
@NicolasFussberger

Copy link
Copy Markdown
Contributor

One note regarding the supervision. In the current implementation this is only done via deactivate() call.
There is quite a chain until this point is reached in case of a process crash.
Process Crash -> OSHandler -> .... -> Unexpected Termination Event in EventQueue -> Retrieve event -> deactivate() component -> deactivate supervision.

This time period btw. process crash and actually deactivating the supervision creates some room for false positive supervision failures.

So I am wondering, if the supervision should rather be deactivated directly when getting the process terminated notification in the component to avoid this issue.

@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-779: https://eclipse-score.github.io/lifecycle/pr-779/

@danth
danth force-pushed the pin-split-supervision branch from 8fe6f4c to 2c819e2 Compare October 23, 2026 08:21
This does not make sense because the supervision is created once
in the constructor, not when the state changes.
Comment thread score/launch_manager/src/daemon/src/process_group_manager/details/component.cpp Outdated
config.component_properties.application_profile.alive_supervision.value());
if (!handle)
{
LM_LOG_ERROR() << "Failed to set up alive supervision for" << config.name;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this fails, the component must not be started later. Otherwise it would run without supervision


if (!deactivateSupervision())
{
state_ = FaultState{};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would be the reaction following the fault state?
I wonder if we should still continue shutting down the process here?

/// @param supervision_factory Factory used to construct alive supervision.
/// @param config Configuration of the component.
Component(
const IStartAction& start_action,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What owns these objects if they are passed only as const ref?

@danth
danth requested a deployment to workflow-approval October 26, 2026 11:55 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 26, 2026 11:55 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 26, 2026 11:55 — with GitHub Actions Waiting
@danth
danth requested a deployment to workflow-approval October 26, 2026 11:55 — with GitHub Actions Waiting

This branch is waiting to be deployed

1 waiting deployment
workflow-approval — cb0d0ac7 Waiting Oct 26, 2026 by danth via Build and test arm64-qnx / approval #1778
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.

2 participants