Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Playwright tunnel stop can hang while waiting for connection

オープン
#5,853 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
64/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript
領域
tooling

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
TypeScript
スター
6.5k
フォーク
708
平均マージ
4日 7時間
マージ済み PR(30日)
61

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/rushstack のほかの issue

microsoft/rushstack の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。