nodejs / nodejs/node

Debugger `paused` event is sometimes not delivered to inspector client on macOS CI

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

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

debugger flaky-test macos
主要言語
JavaScript
スター
122k
フォーク
37.3k
平均マージ
4日 2時間
マージ済み PR(30日)
283

説明

We have multiple macOS CI debugger flakes where the debuggee appears to pause, but the
inspector client process never observes the expected Debugger.paused event.

This has affected interactive debugger tests and probe mode. In probe mode, handlePaused()
should either record hits or resume unknown pauses. When the report has no hits and eventually
times out, the most likely signal is that the paused event never reached the inspector client
process.

The AI-assisted PRs have mostly tried to address nearby symptoms or test races, but they have
not resolved the underlying observation:

  • #63608 deferred probe pause handling until startup completed.
  • #63632 changed exception-pause behavior.
  • #63944 adjusted a probe fixture to avoid missed startup breakpoints.
  • #63968 changed tests to wait for paused state instead of pause-banner output.

Refs: https://github.com/nodejs/node/pull/63632#issuecomment-4583515968

The question we need to answer is

Why is Debugger.paused sometimes never delivered to the inspector client process on macOS CI?

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

まず macOS CI のデバッガーの flaky を再現し、debuggee、Inspector クライアントプロセス、probe モードの handlePaused() の間での配信を追跡します。#63608、#63632、#63944、#63968 のこれまでの試み、特に参照されている #63632 の議論を読んでください。Debugger.paused イベントが欠落する原因を特定し、影響を受けるインタラクティブデバッガーと probe モードのケースがタイムアウトしなくなれば完了です。

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

評価

技術スタック
javascript, nodejs
領域
devtools, testing-qa
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

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

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