Playwright tunnel stop can hang while waiting for connection
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 64/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- typescript
- Lĩnh vực
- tooling
Hướng nghiên cứu
Locate PlaywrightTunnel.stopAsync() and _pollConnectionAsync(), then trace how the pending poll promise and _initWsPromise behave when stopping in waiting-for-connection mode. Reproduce a stop before any WebSocket connects and verify that stopAsync() settles, pending poll state is cleared, and the tunnel reaches stopped status.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
PlaywrightTunnel.stopAsync() can hang when the tunnel is stopped while it is still waiting for a poll-connection client to arrive.
Why this is a separate issue
The current PR (#5851) fixes a Start/Stop lifecycle race by waiting for an in-progress stop before starting again. That does not address the case where Stop itself never settles while the tunnel is still in waiting-for-connection / poll-connection mode.
Suspected root cause
In poll-connection mode, _pollConnectionAsync() returns a promise that only resolves after a WebSocket connection succeeds. stopAsync() clears the polling interval, but it still awaits _initWsPromise, which can remain unresolved forever if Stop happens before a connection arrives.
Proposed fix shape
- Add a cancellation/settle path for the pending poll promise when stopping.
- Ensure
stopAsync()can complete even if no WebSocket ever connected. - Clear any pending poll state and set status to stopped as part of stop teardown.
Evidence
A local gws auth login flow now reaches a clean timeout when the VS Code extension never connects, which suggests the remaining stall is in the extension stop path rather than the remote side.
- Ngôn ngữ chính
- TypeScript
- Star
- 6.5k
- Fork
- 710
- Merge trung bình
- 1 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 48
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không 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 microsoft/rushstack
-
[rush] Upgrade the pnpm-sync-lib dependency to 0.3.5.Có thể đã có người làm @martinnaj đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
microsoft/rushstack#5971 · 2 bình luận ·
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 65/100
microsoft/rushstack#5902 · 1 reaction ·
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 68/100
microsoft/rushstack#5839 · 1 reaction ·
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 70/100
microsoft/rushstack#5683 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/rushstack
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
OHDSI/Data2Evidence#3496 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
TaskSecret.vue: replace explicit `any` with real typesCó thể đã có người làm @prayas-bit đã nhận hôm nay. Đang mởarea/frontend good first issue kind/cooldown
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
kestra-io/kestra#20352 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Bouncer: long messages are re-split at 350 bytes, breaks echo-message reconciliationCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày