Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

bug(sdk/ts): forward().close() never revokes SSH session tokens of open connections

Offen Anfängerfreundlich
#4,516 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
62/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
typescript
Bereich
api

Rechercherichtung

Beginne in sdk/typescript/src/client.ts mit forward, teardown und forwardConnection und verfolge, wie das pro Verbindung gesetzte AbortController-Signal den finally-Block erreicht, der revokeSshSession aufruft. Prüfe den Revoke-Aufruf im Go-Datei-Client auf den vorgesehenen unabhängigen Kontext. Reproduziere das, indem du eine Verbindung öffnest, das Handle schließt und bestätigst, dass keine RevokeSshSession-Anfrage gesendet wird. Fertig ist es, wenn jeder ausgestellte Token eine Revoke-Anfrage mit eigenem Timeout erhält, auch nachdem das Verbindungssignal abgebrochen wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

state:triage-needed
User Story

I use OpenShell and build automation against its SDKs. I found this while reviewing sdk/ on main; it is identified from the code paths cited below and has not yet been reproduced against a live gateway.

Problem Statement

On close() (or caller abort), teardown aborts each connection's AbortController. forwardConnection's finally then calls revokeSshSession({ token, allowMissing: true }, { signal }) with that same, already-aborted signal, so the revoke RPC is never sent. The Go file client revokes with a fresh background context.

Impact / Why This Matters

Every SSH session token minted for connections still open at close() stays valid until it expires instead of being revoked, contrary to the method's documented revoke-on-close behavior.

Acceptance Criteria
  • Closing a forward handle with open connections issues RevokeSshSession for each minted token (bounded by its own timeout, independent of the aborted connection signal).
Reproduction Steps
  1. const h = await client.sandbox.forward(name, { targetPort }).
  2. Open a local connection so a session token is minted.
  3. await h.close().
  4. Observe no RevokeSshSession RPC reaches the gateway for that token (the call rejects immediately on the aborted signal).
Suggested UX (if applicable)

No response

Environment
  • OpenShell: main @ 82977e2 (2026-10-13)
  • SDK: TypeScript (sdk/typescript/src/client.ts, forward/forwardConnection)
  • Toolchain: Go 1.25.4 linux/amd64, Node 22
Logs

Vorherrschende Sprache
Rust
Sterne
15.4k
Forks
1.7k
Ø Merge
2 T. 3 Std.
Gemergte PRs (30 T.)
374

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NVIDIA/OpenShell

Alle Issues in NVIDIA/OpenShell

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.