NVIDIA / NVIDIA/OpenShell

refactor(supervisor): make managed child ownership structural

Open
#3,154 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
8.7k
Forks
1.3k
Avg merge
2d 11h
Merged PRs (30d)
253

Description

Description

Make Linux managed-child ownership structural so callers cannot accidentally separate spawning, PID registration, waiting, unregistering, and lost-child diagnostics.

Context

The child reaper race fixed by PR #3142 required every Linux child path to use the correct registration protocol. The current registry helper closes the immediate spawn-to-registration window, but ownership remains a convention across canonical and SSH process paths. The diagnostics and wait-handling follow-ups explored during that review belong with the ownership cleanup.

Definition of Done

  • Introduce a managed-child abstraction that owns Linux child registration and cleanup.
  • Route canonical and SSH child paths through the abstraction.
  • Centralize explicit-wait handling, unregistering, and ECHILD diagnostics.
  • Add deterministic tests for ownership and reaper interleavings.
  • Preserve non-Linux behavior without introducing Linux-only reaper machinery there.

Related Work

  • PR #3142

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading PR #3142, then trace the canonical and SSH child paths named in the issue to understand their current registration and cleanup flow. Done means both paths use one managed-child abstraction, wait and ECHILD handling are centralized, deterministic interleaving tests exist, and non-Linux behavior remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.