Skip to content

fix(server): budget SSH relays and service forwards separately - #5063

Merged
TaylorMutch merged 1 commit into
NVIDIA:mainfrom
ericcurtin:fix/4472-relay-budgets/ericcurtin
Nov 10, 2026
Merged

TaylorMutch merged 1 commit into
NVIDIA:mainfrom
ericcurtin:fix/4472-relay-budgets/ericcurtin

Conversation

@ericcurtin

Copy link
Copy Markdown
Contributor

Summary

SSH relays and service forwards now have separate per-sandbox budgets, so open forwards no longer block SSH.

Related Issue

Closes #4472

Changes

  • Count service forwards apart from SSH relays.
  • Add max_ssh_connections_per_sandbox and max_service_connections_per_sandbox gateway settings (default 20, minimum 1).
  • Name the exhausted budget in the limit error.
  • Document the settings.

Release Notes

SSH and service forward connections have separate per-sandbox limits, both configurable in the gateway config.

Testing

  • Checks appropriate to the affected code and behavior pass
  • Unit tests added/updated (if applicable)
  • E2E tests added/updated (if applicable)

cargo fmt, cargo clippy -D warnings, and lib tests for core and server pass.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

Open service forwards no longer block SSH. Both per-sandbox caps are
configurable and the limit error names the exhausted budget.

Signed-off-by: Eric Curtin <eric.curtin@docker.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 30, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ericcurtin

Copy link
Copy Markdown
Contributor Author

@krishicks @matthewgrossman could you please triage #4472 so the issue check can pass? @drew @mrunalp PTAL, and /ok to test b45de0c976a6c096daee7732424760a073b54894 if it looks good. Thank you!

@ericcurtin

Copy link
Copy Markdown
Contributor Author

@johntmyers @TaylorMutch could you please triage #4472 so the issue check can pass? PTAL, and /ok to test b45de0c976a6c096daee7732424760a073b54894 if it looks good. Thank you!

@ericcurtin

Copy link
Copy Markdown
Contributor Author

@FrostGod @pimlock PTAL when you get a chance, and could you please triage #4472 so the issue check can pass? /ok to test b45de0c976a6c096daee7732424760a073b54894 if it looks good. Thank you!

@TaylorMutch

Copy link
Copy Markdown
Collaborator

/ok to test b45de0c

@github-actions

Copy link
Copy Markdown

Compatibility review (advisory)

New or updated breaking changes; see the full report for all findings.

1. api-behavior — No explicit risk acceptance found

ForwardTcp replaces the shared 20-relay sandbox ceiling with independent default ceilings of 20 SSH relays and 20 service forwards.

  • Impact: Existing gateway deployments lose their documented aggregate ceiling: after 20 service forwards, another SSH relay now succeeds instead of returning RESOURCE_EXHAUSTED.
  • Action: Preserve the shared 20-relay ceiling by default in v0.1.7 and make independent budgets an explicit opt-in.
  • PR: fix(server): budget SSH relays and service forwards separately #5063
Review details
  • Execution: complete
  • Candidate: PR #5063 (c852f16dd356d1f59f2449e86637d80abeb0906c)
  • Baseline: 3a5dfcd2f1afd9c7376b07b11036265bbb68453c (3a5dfcd2f1afd9c7376b07b11036265bbb68453c)
  • Reviewed: rust-sdk, python-sdk, go-sdk, typescript-sdk, api-behavior, cli, configuration, policy, helm, state

Advisory review; publication gates are unchanged.

Branch check run

@TaylorMutch TaylorMutch left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed the separate SSH and service-forward budgets, configuration validation, token-count rollback, and connection-guard cleanup. No actionable code faults found. Focused accounting checks and PR CI pass.

@TaylorMutch
TaylorMutch added this pull request to the merge queue Nov 10, 2026
Merged via the queue into NVIDIA:main with commit 7873aaa Nov 10, 2026
84 of 85 checks passed
@ericcurtin
ericcurtin deleted the fix/4472-relay-budgets/ericcurtin branch November 10, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(gateway): service forwards and SSH sessions share one per-sandbox cap of 20 relay slots

2 participants