Skip to content

test_relay.py の test_guard_* が並列の全体テストでだけ落ち、全体テストを使う工程が揺れで止まる #1967

Open

Description

@takemi-ohama

何を見つけたか

plugins/ndf/scripts/tests/test_relay.py のテストが、並列の全体テスト(uv run --frozen --project . --all-extras pytest . -q -n 4)でだけ落ち、単独で走らせ直すと通る。スプリント m1932 で 2 つのテストが別々の場面で落ちた。

2026-10-13 04:17〜04:25 JST の develop HEAD 94e2eba の全体テストでは落ちなかった(9770 passed)。

どこで見つけたか

  • ~/.local/state/ndf/sv/sprint-m1932/1-design-1932-state/07-review.out の 143 行目と、同じプランの 12-gate.out(関門 1 へ渡す理由に「PR の範囲外」とだけ書かれた)
  • ~/.local/state/ndf/sv/sprint-m1932/5-impl-1644-state/01-impl.out の 24 行目
  • スプリント m1932 の振り返りで、番号の無い取りこぼしとして拾った

なぜこの変更の範囲外なのか

m1932 の 5 課題(#1932 #1674 #1834 #1296 #1644)の受け入れ条件は、中継(relay)の hook のテストを扱わない。落ちたテストはどの変更とも関係しない箇所で、どの担当も直さずに先へ進めた。根拠: MVV 版 2(判断の範囲は目の前の変更に限る)。

直さないと何が起きるか

全体テストを使う工程(設計 PR の sweep・実装の担当・cross-refactoring の着手前と最終ゲート・検査の test-all)が、揺れで落ちて走らせ直しや原因の調査に時間を使う。cross-refactoring では揺れの全体テストが想定最大時間を食い、改善を手放す方へ倒れうる。揺れと変更起因の失敗の見分けを、担当ごとの判断に頼り続ける。

起票者の推定

  • 2 つのテストの落ち方は同じ原因(並列の実行で共有するもの)による(推した出所: 2 つとも test_guard_* で、並列でだけ落ち単独で通る)

由来

PR #1965

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions