Skip to content

fix(sdk): Change tcp client listener to accept connections concurrently - #4880

Closed
d0w wants to merge 2 commits into
NVIDIA:mainfrom
d0w:issue-4512
Closed

d0w wants to merge 2 commits into
NVIDIA:mainfrom
d0w:issue-4512

Conversation

@d0w

@d0w d0w commented Oct 23, 2026

Copy link
Copy Markdown

Summary

Modifies the client.TCP listener to accept connections concurrently rather than synchronously. This allows multiple connections to be accepted at once while avoiding hanging connections and setups from preventing new connections from being made. The change also adds a timeout for connection setups only so that they do not have to be manually closed.

Related Issue

Closes #4512

Changes

  • Moves the Tunnel or Forward step when setting up a new connection to a sandbox or ssh client into a separate goroutine outside of the listener loop.
  • Connection setups now have a 30 second timeout period after which the tunnel is automatically closed. This is done by using a separate context that is cancelled via a timer.
  • Adds tests to assert that concurrent connections do not block each other and that hanging connections are closed after a timeout.

Release Notes

Testing

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

Checklist

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

d0w added 2 commits October 23, 2026 15:07
Signed-off-by: Derek Xu <derxu@redhat.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 23, 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.

@github-actions

Copy link
Copy Markdown

Thank you for your interest in contributing to OpenShell, @d0w.

This project uses a vouch system for first-time contributors. Before submitting a pull request, you need to be vouched by a maintainer.

To get vouched:

  1. Open a Vouch Request discussion.
  2. Describe what you want to change and why.
  3. Write in your own words — do not have an AI generate the request.
  4. A maintainer will comment /vouch if approved.
  5. Once vouched, open a new PR (preferred) or reopen this one after a few minutes.

See CONTRIBUTING.md for details.

@github-actions github-actions Bot closed this Oct 23, 2026
@github-actions

Copy link
Copy Markdown

Thank you for your submission! We ask that you sign our Developer Certificate of Origin before we can accept your contribution. You can sign the DCO by adding a comment below using this text:


I have read the DCO document and I hereby sign the DCO.


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the DCO Assistant Lite bot.

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(sdk/go): TCP().Listen sets up tunnels serially in the accept loop

1 participant