Conversation
|
🌿 Preview your docs: https://nvidia-preview-pr-3265.docs.buildwithfern.com/openshell |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
e2b8a35 to
797c36e
Compare
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
All contributors have signed the DCO ✍️ ✅ |
ab4bb69 to
9be1774
Compare
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
Added the startup policy preparation exchange in Before this change, the supervisor discovered or enriched the startup policy, called the unary The initial
There is no reconnect after preparation. Later reconnects omit the image policy, skip startup preparation, and receive the current gateway bootstrap directly. This keeps the gateway authoritative without requiring it to know what paths exist in the sandbox image. It also removes the old ambiguity around mutation responses: neither the candidate nor the preparation response becomes runtime state. Failure behavior is fail-closed. Candidate mismatches, preparation failures, and invalid prepared policies produce The change includes protocol bindings, architecture documentation with a sequence diagram, positive tests for policy precedence and persistence, a negative invalid-policy test, and the focused Docker live-policy E2E coverage. |
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com> # Conflicts: # architecture/gateway.md
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
This comment has been minimized.
This comment has been minimized.
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
PR Review StatusThanks @pimlock. I reviewed the current stacked-base merge in critical-only mode against the durable feedback ledger. The merge resolution introduces no new Critical defect, and Blocking findings:
Carried findings:
Gator metadata
|
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
|
Hey @sjenning @mrunalp @derekwaynecarr — this one's been open a bit and is part of the #1731 staged rollout (this is stage 2 of 3). Any chance you have bandwidth for a review pass in the near term? Happy to help unblock if there's anything I can clarify in the meantime. |
Summary
Initialize supervisors and apply live configuration updates through
ConnectSupervisor. Protocol revision 2 uses streamed snapshots and requires successful bootstrap before the gateway marks a supervisor initialized. Older protocol revisions retain polling compatibility. The supervisor must connect to every remote middleware required by the initial effective policy before starting the workload, even whenfail_openis configured. A failed live registry reload retains the last-known-good registry and keeps the workload running.Stage 2 architecture walkthrough
Related Issue
Part of #1731.
Stacked on #3244.
Changes
Testing
mise run pre-commitmise run cimise run e2e:dockerLatest retention integration validation at
13f7f06b3: fullmise run cipassed, including 6,186 Rust tests.mise run e2ewithOPENSHELL_E2E_DOCKER_TEST=live_policy_updatepassed four live-policy Rust tests, 87 Python tests with 81 skips, and the MCP baseline checks, using rebuilt gateway and supervisor binaries.Known reliability issue observed under load
A focused reproduction with 32 running sandboxes and 32 concurrent exec clients produced 6 false exit-code-1 results across 37,376 exec calls, including commands that explicitly ran
exit 0. Diagnostic logs confirmed that the orphan reaper collected a child's exit status 0 before SSH's waiter receivedECHILDand substituted exit code 1. No policy changes or gateway restart were needed.The implicated spawn/register/reap code predates this PR. Existing fix commit
c5cf4ec2bis included in #3142.Retention follow-ups
Continuously dirty admitted keys can delay overflow recipients until a slot is released. Earlier stress probes also observed SQLite lock failures and growing gateway RSS; their attribution remains unresolved. These follow-ups are not fixed by this integration, and the earlier latency measurements have not been rerun against the combined head.
Checklist