Chromium 149 headless shell crashes in service-worker DevTools resource loading during context teardown
メンテナーはふだん 1 日以内に返信
評価
この issue はまだ評価されていません。
説明
Chromium 149 service-worker DevTools resource load dereferences a missing live version during context teardown
Observed with Playwright 1.61.0, chromium_headless_shell revision 1228 / Chrome Headless Shell 149.0.7827.55 on GitHub Actions ubuntu-latest. Two public CI failures:
- https://github.com/a1flecke/conquestoria/actions/runs/38500204147/job/115645092786
- https://github.com/a1flecke/conquestoria/actions/runs/38502652126/job/115652953042
The application registers a service worker, and Playwright runs short renderer tests in fresh contexts with trace: 'retain-on-failure'. Both failures terminate the browser with SIGSEGV at address 0x1b0, reported while starting the next context. The launch already includes --disable-dev-shm-usage.
The exact Linux binary is available at https://cdn.playwright.dev/builds/cft/149.0.7827.55/linux64/chrome-headless-shell-linux64.zip, build ID c97a9c1daed9622d2d0f626ce0e85170e6e105f2. It is stripped, so the following attribution uses disassembly and embedded debug strings, not a symbolized stack:
- Return frame 0x653e673 is in code referencing
NetworkHandler::LoadNetworkResource. - Return frame 0x6574d16 is in code referencing
SWDTAH::CreateNetworkFactoryParamsForDevTools. At 0x6574cfa it calls the live-version lookup, then adds 0xa8 to the returned pointer and passes that storage-key address to an isolation-info routine, with no null check. - The fault at 0x2af9eed is
cmpl $0x0, 0x108(%rsi). The CI register dumps haverax=0andsi=0xa8, producing the exact fault address 0xa8 + 0x108 = 0x1b0.
The matching source unconditionally uses version->key() after context_wrapper_->GetLiveVersion(version_id_):
https://github.com/chromium/chromium/blob/149.0.7827.55/content/browser/devtools/service_worker_devtools_agent_host.cc#L426-L449
The network handler invokes that factory for non-frame resources:
https://github.com/chromium/chromium/blob/149.0.7827.55/content/browser/devtools/protocol/network_handler.cc#L4362-L4468
An inferred caller is Playwright's response-body fallback: an empty Network.getResponseBody response with nonzero expected content length triggers Network.loadNetworkResource, including on a service-worker session. Trace collection can overlap context teardown. The original logs do not capture the exact request or event ordering, so that sequence remains a hypothesis; the native null live-version dereference is directly supported by the registers and disassembly.
Repository mitigation: block service workers in smoke contexts that do not test PWA behavior. All real PNG decoding, canvas drawing and pixel assertions remain. Local macOS smoke and 30 wonder-spec repetitions pass. The mitigation also passed the full 42-test smoke suite and all 180 wonder tests on ubuntu-latest using the lockfile-pinned browser, with --repeat-each=30 --workers=1 --retries=0: https://github.com/a1flecke/conquestoria/actions/runs/38556914066/job/115828240726. A minimal standalone reproducer has not yet been established.
Could the DevTools factory handle an absent live version during resource loading, and could Playwright avoid or cancel this fallback for a closing service-worker session? Playwright #43009 concerns a separate service-worker session teardown leak; it is not claimed as this crash's cause.
- 主要言語
- TypeScript
- スター
- 98.5k
- フォーク
- 6.7k
- 平均マージ
- 16時間 5分
- マージ済み PR(30日)
- 286
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/playwright のほかの issue
-
[Bug]: `playwright install` hangs silently for ~8 minutes when PLAYWRIGHT_BROWSERS_PATH is not writable対応中かも @dcrousso が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
microsoft/playwright#43606 ·
メンテナーはふだん 1 日以内に返信
-
[Feature]: Set `this.name` in `TargetClosedError` constructor再び着手できるかも @LeonxLJX が 53 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンP3-collecting-feedback
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
microsoft/playwright#42522 · コメント 7 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
microsoft/playwright#43655 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: UI mode fails with spawn EBADF on macOS when the test directory contains more than ~10k filesオープン
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
microsoft/playwright#43653 ·
メンテナーはふだん 1 日以内に返信
-
needs-triage-win
難易度 4/5 1〜2日 初心者へのやさしさ 48/100
microsoft/playwright#43649 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
microsoft/playwright の issue をすべて見る
似ている issue
-
Add: ON Phim Viet SDオープンcheck:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
メンテナーはふだん 1 日以内に返信
-
area:agents area:cost bug platform:macos
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
anthropics/claude-code#105375 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
galaxyproject/loom#616 ·
メンテナーはふだん 1 日以内に返信
-
e2e-failure ready-to-code
難易度 2/5 1〜3時間 初心者へのやさしさ 79/100
redhat-developer/rhdh-plugin-export-overlays#4580 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信