voidzero-dev / voidzero-dev/vite-plus
PTY snapshot suite: rare non-repeating case failures under parallel load (pass in isolation)
- 主要言語
- Rust
- スター
- 5.8k
- フォーク
- 262
- 平均マージ
- 23時間 41分
- マージ済み PR(30日)
- 138
説明
## 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 `), 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.
コントリビューションガイド
調査の方向性
`just snapshot-test migration` と PTY snapshot runner から始め、`rust-toolchain.toml` と記載されている migration fixture を再現環境として使用します。コールドキャッシュでの並列実行と、分離した実行およびウォームキャッシュでの実行を比較し、提案されているタイミング、詳細度、またはリトライの計測を追加します。負荷に敏感な失敗が説明され、migration suite が説明のつかない間欠的な失敗を生成しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- testing
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100