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

Aberta
#2,565 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
testing

Direção de pesquisa

Comece com just snapshot-test migration e o PTY snapshot runner, usando rust-toolchain.toml e os fixtures de migração listados como superfície de reprodução. Compare execuções paralelas com cache frio com execuções isoladas e com cache aquecido, adicionando a instrumentação sugerida de tempo, verbosidade ou tentativas. Está concluído quando as falhas sensíveis à carga estiverem explicadas e a suíte de migração não produzir mais falhas intermitentes inexplicadas.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Rust
Estrelas
6.5k
Forks
297
Merge médio
20h 56min
PRs com merge (30d)
234

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de voidzero-dev/vite-plus

Todas as issues de voidzero-dev/vite-plus

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.