Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#4,516 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
62/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript
Área
api

Línea de trabajo

Empieza en sdk/typescript/src/client.ts con forward, teardown y forwardConnection, y sigue cómo la señal AbortController por conexión llega al bloque finally que llama a revokeSshSession. Revisa la llamada de revocación del cliente de archivos en Go para ver el contexto independiente previsto. Para reproducirlo, abre una conexión, cierra el handle y confirma que no se envía ninguna solicitud RevokeSshSession. Está terminado cuando cada token emitido recibe una solicitud de revocación con su propio timeout, incluso después de que la señal de la conexión se haya abortado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Rust
Estrellas
15.4k
Forks
1.7k
Merge medio
2 d 6 h
PR fusionados (30 d)
397

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de NVIDIA/OpenShell

Todos los issues de NVIDIA/OpenShell

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.