voidzero-dev / voidzero-dev/vite-plus

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

オープン
#2,565 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

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

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