fix(e2e): pause supervisor during childless recovery - #8571
Conversation
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe change adds validated Docker commands for failed-startup process control. The live E2E recovery flow pauses and resumes the supervisor around startup-child termination. Tests cover command generation and validation. ChangesFailed-startup recovery
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
test/e2e/live/shields-config.test.ts (1)
972-1013: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCapture the startup PID after the supervisor stops.
liveStartupPidis captured beforepauseSupervisorstops PID 1. PID 1 can replace the child during that interval.terminateStartupChildcan then target the stale PID and accept “no such process,” while the replacement child remains stopped and keeps the census nonzero.Pause PID 1 first. Then run the startup census again and build the termination command from the current child PID.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/e2e/live/shields-config.test.ts` around lines 972 - 1013, Update the phase-12 live-child refusal flow to pause the supervisor before determining the startup child PID. After pauseSupervisor succeeds, rerun the startup census, obtain the current child PID, and rebuild processControl or its terminateStartupChild command from that PID before terminating it; do not use the stale liveStartupPid captured earlier.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@test/e2e/live/shields-config.test.ts`:
- Around line 972-1013: Update the phase-12 live-child refusal flow to pause the
supervisor before determining the startup child PID. After pauseSupervisor
succeeds, rerun the startup census, obtain the current child PID, and rebuild
processControl or its terminateStartupChild command from that PID before
terminating it; do not use the stale liveStartupPid captured earlier.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: f133074b-fee4-4464-92fe-feb823d3955a
📒 Files selected for processing (4)
test/e2e/fixtures/shields-failed-startup.tstest/e2e/live/shields-config.test.tstest/e2e/mock-parity.jsontest/e2e/support/shields-failed-startup.test.ts
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests. 3 semantic terminology decisionsTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. A maintainer can dispatch the default E2E suite against this exact revision. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
The Shields failed-startup E2E proof now pauses the sandbox supervisor before terminating the startup child. This prevents PID 1 from racing the childless census and killing
docker execwith exit 137.Changes
Type of Change
Quality Gates
Documentation Writer Review
no-docs-neededDGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailablenpm run test:changedand focused E2E-support coverage passed 9 tests; E2E phase, mock/live parity, integration parity, and repository checks also passed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Julie Yaunches jyaunches@nvidia.com
Summary by CodeRabbit
Bug Fixes
Tests