bug(sdk/ts): forward().close() never revokes SSH session tokens of open connections
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 62/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- api
Hướng nghiên cứu
Bắt đầu tại sdk/typescript/src/client.ts với forward, teardown và forwardConnection, rồi theo dõi cách tín hiệu AbortController riêng của từng kết nối đi tới khối finally gọi revokeSshSession. Kiểm tra lệnh gọi thu hồi trong client tệp Go để xem ngữ cảnh độc lập được dự kiến. Để tái hiện, mở một kết nối, đóng handle và xác nhận không có yêu cầu RevokeSshSession nào được gửi. Hoàn thành khi mọi token đã cấp đều nhận được một yêu cầu thu hồi với timeout riêng, ngay cả sau khi tín hiệu của kết nối bị hủy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
RevokeSshSessionfor each minted token (bounded by its own timeout, independent of the aborted connection signal).
Reproduction Steps
const h = await client.sandbox.forward(name, { targetPort }).- Open a local connection so a session token is minted.
await h.close().- Observe no
RevokeSshSessionRPC 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
- Ngôn ngữ chính
- Rust
- Star
- 15.4k
- Fork
- 1.7k
- Merge trung bình
- 2 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 397
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/OpenShell
-
bug(sdk/go): browser login callback binds 127.0.0.1 but redirect_uri uses localhostCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
NVIDIA/OpenShell#4518 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(sdk/go): edge (Cloudflare Access) token is cached for the client lifetime and never reloadedĐang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
NVIDIA/OpenShell#4515 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
NVIDIA/OpenShell#4509 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
docs(upgrade): no migration notes for 0.1.1, 0.1.2, or 0.1.3 (only the 0.1.0 page exists)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA/OpenShell
Issue tương tự
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsCó thể đã có người làm @roboomp đã nhận hôm nay. Đang mởbug prio:p2 providers triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
can1357/oh-my-pi#15798 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
requires-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/datafusion-comet#7001 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
Add a Storybook section to CONTRIBUTING.mdCó thể đã có người làm @ChanakyaG2004 đã nhận hôm nay. Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
FlowwStar/FlowStar#995 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày