PTY snapshot suite: rare non-repeating case failures under parallel load (pass in isolation)

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

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

評価

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

調査の方向性

just snapshot-test migration と PTY snapshot runner から始め、rust-toolchain.toml と記載されている migration fixture を再現環境として使用します。コールドキャッシュでの並列実行と、分離した実行およびウォームキャッシュでの実行を比較し、提案されているタイミング、詳細度、またはリトライの計測を追加します。負荷に敏感な失敗が説明され、migration suite が説明のつかない間欠的な失敗を生成しなくなれば完了です。

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

説明

Summary

Running the full migration* PTY snapshot suite in parallel occasionally fails a small, non-repeating set of cases (~0.4% of case-executions). Every affected case passes deterministically when run in isolation, and the failing names differ between runs — so this looks like load-sensitivity in the PTY runner environment rather than any individual fixture or product bug. Filing per m0g3r's suggestion in #2483 after it showed up there first.

Observations (macOS arm64, M-series, just snapshot-test migration)

Five full-suite runs across two commits, all with a fresh packages/cli/dist (freshness guard green):

run commit result failed cases
A 31163c5 (PR #2483 branch) 151/154 migration_dynamic_oxc_configs, migration_framework_shim_vue, migration_standalone_yarn4_idempotent
B cc20535d (main) 159/161 migration_not_supported_vitest3, migration_from_tsup_monorepo_success
C cc20535d (main) 161/161
D cc20535d (main) 161/161
E 31163c5, earlier same-day 148/154 different set again (incl. migration_husky_or_prepare, migration_standalone_bun_install)
  • No case name repeats across runs. Union of failures over five runs: 10+ distinct fixtures, each failing exactly once.
  • Every one of them passes in isolation (just snapshot-test <name>), immediately after the failing run, unchanged tree.
  • The failure-heavy runs were the first suite run after a fresh build / cold caches; warm re-runs (C, D) were fully green. Cold-state work on first touch (managed runtime provisioning, registry-bridge first hits) overlapping with ~14 parallel PTY cases is my best guess at the mechanism, but I have not isolated it.
  • m0g3r additionally verified in #2483 that the flaked fixtures are structurally unremarkable (step counts mid-pack; one of 21 double-vp migrate fixtures).

Why it may matter

Locally it's a shrug; in CI a 0.4% per-case flake across ~650 cases makes a meaningful fraction of runs red for reasons unrelated to the diff under test, and the changing names make it hard for contributors to tell signal from noise (it cost a round of triage on #2483).

Environment

  • macOS arm64 (Darwin 25.2), 14 threads reported by the runner
  • just snapshot-test migration (both flavors), toolchain per rust-toolchain.toml

Happy to re-run with any added instrumentation (timings, per-case retries, runner verbosity) if that helps narrow it — I can reproduce roughly one flaky run per two or three cold full-suite runs.

主要言語
Rust
スター
5.8k
フォーク
263
平均マージ
22時間 44分
マージ済み PR(30日)
134

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

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

はじめの一歩

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

voidzero-dev/vite-plus のほかの issue

voidzero-dev/vite-plus の issue をすべて見る

似ている issue

Rust の issue をもっと見る

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

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