Repository navigation
Conversation
4 tasks
TaylorMutch
requested changes
Oct 21, 2026
TaylorMutch
left a comment
Collaborator
There was a problem hiding this comment.
The centralized validation is the right shape and closes the gap across first confirmation, renewal, liveness, and reconnect. Please address these items before merge:
- Update the branch onto current
mainand rerun CI. This head is 30 commits behind, andcrates/openshell-sandbox-backend/src/runtime.rschanged in the intervening transport work (#4656). - Complete the replay-path test coverage described by #4703. The new tests cover a session mismatch during renewal/reconnect and an Attach generation mismatch. Please also cover resource-claim and provisioning-evidence mismatches across renewal/reconnect, plus wrong response variants for replayed Attach and Confirm. A table-driven validator test can keep this compact, with path-level tests proving the shared validator is called.
- Keep mismatch diagnostics field-specific.
launch_confirmationcallsBoundaryConfirmation::validatebefore its field checks, so an identity mismatch or empty generation currently returns the genericboundary confirmation is incomplete or mismatchederror. Please make those errors identify the mismatched field, matching the issue's acceptance criterion and the PR description.
Once those are addressed and CI is green on the updated base, this should be ready for another review.
The delegated client compared a backend's Confirmed with the launch binding only on the first confirmation. Credential renewal, the liveness probe and reconnect accepted any Confirmed, and reconnect ignored the replayed Attach reply. A backend that lost its launch state could answer for another session and keep serving the sandbox. Check Attach and Confirm replies against the client's runtime descriptor on every path. Close the connection when a same-epoch renewal returns another launch. Document that Attach and Confirm must stay replayable for the whole generation. Closes NVIDIA#4703 Signed-off-by: Shiju <shiju@nvidia.com>
shiju-nv
force-pushed
the
fix/4703-reconfirm-launch-binding/shiju-nv
branch
from
October 21, 2026 06:35
490275a to
826a94f
Compare
Attach and Confirm replays must return the original result for the whole generation. The renewal and reconnect tests now match the full mismatch phrase, so the generation case cannot pass on the empty-generation error. Signed-off-by: Shiju <shiju@nvidia.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The delegated client compared a backend's
Confirmedwith the launch only on the first confirmation. Credential renewal, the liveness probe and reconnect accepted anyConfirmed, and reconnect ignored the replayed Attach reply. This PR checks every Attach and Confirm reply against the launch and documents that both must stay replayable for the whole generation.Related Issue
Closes #4703
Changes
crates/openshell-sandbox-backend/src/runtime.rs:BoundaryClient::check_attachedandBoundaryClient::launch_confirmationcheck a reply against the client's runtime descriptor (workload identity, generation, session, resource claims, provisioning evidence). A wrong response variant is rejected, and a mismatch error names the field.ensure_current_credential_connection: credential renewal;connection_is_live: the liveness probe;attach_new_channel: reconnect.BoundBoundaryloses its copies of the launch fields, since the client's descriptor is now the single source.proto/sandbox_protocol.proto: Attach and Confirm replays succeed for the whole generation; the supervisor replays them on reconnect, and Confirm alone for renewal and liveness. The client checks every reply.TestGrpcBoundarygainsattach_generation.runtime/tests/credential_renewal.rs:check_attachedandlaunch_confirmationreject the wrong response variant;Testing
Checklist