概要
tests/test_remote_engine_start_refusal.bats(upstream由来、PR #90でのupstream同期により導入)の以下のテストが、macOS runner上で2回中2回失敗しています。
not ok NNN sync start: a cleanup that cannot retake the lock says so and keeps the record (#817)
(in test file tests/test_remote_engine_start_refusal.bats, line 375)
`mkdir "$lock"' failed
mkdir: <tmpdir>/teams/testteam/.config.lock: File exists
このテストはmkdir "$lock"を自身のsetupとして実行し、ロックディレクトリを新規作成できることを前提にしていますが、実行時に既にロックディレクトリが存在していたためmkdir自体が失敗しています。テスト名・症状から、直前の別テスト(同じ.config.lockパスを使う、同ファイル内の別テストである可能性が高い)がクリーンアップし切れずにロックディレクトリを残し、後続のこのテストが巻き込まれるテスト分離(test isolation)の問題と推測されます。
観測事実
| PR |
run |
job |
結果 |
再実行 |
| #90(upstream同期本体) |
32236810626 |
bats (macos-latest 2/4) |
not ok 396 |
guarded rerunで解消(pass) |
| #87(team-work.sh修正、#90 merge後にrebase) |
32240881039 |
bats (macos-latest 1/4) |
not ok 397 |
再実行中 |
いずれもubuntu/windowsでは発生せず、macOS runner限定で2回とも再現しています。いずれもguarded single-job rerunで(少なくとも1件は)解消しており、hang/cancelではなく通常のtest failureです(Issue #88のCIハングとは別の症状)。
この差分との関連
このテストファイル自体、およびscripts/team-work.sh(本fork独自の機能)は無関係です。upstream由来のテストコードそのものに内在する問題と考えられます。
次のステップ(未着手)
tests/test_remote_engine_start_refusal.bats内で、このテストの前後に同じ.config.lockパスを操作する他のテストがないか確認する。
- 直前のテストのteardown/cleanupが
.config.lockディレクトリを確実に除去しているかを確認する。
- 再現性が高いようなら、テスト間で一意な一時ディレクトリを使うよう修正するか、upstreamへ報告する。
Codex復帰後、Issue #88と合わせて優先度を判断のうえ着手を検討してください。
概要
tests/test_remote_engine_start_refusal.bats(upstream由来、PR #90でのupstream同期により導入)の以下のテストが、macOS runner上で2回中2回失敗しています。このテストは
mkdir "$lock"を自身のsetupとして実行し、ロックディレクトリを新規作成できることを前提にしていますが、実行時に既にロックディレクトリが存在していたためmkdir自体が失敗しています。テスト名・症状から、直前の別テスト(同じ.config.lockパスを使う、同ファイル内の別テストである可能性が高い)がクリーンアップし切れずにロックディレクトリを残し、後続のこのテストが巻き込まれるテスト分離(test isolation)の問題と推測されます。観測事実
bats (macos-latest 2/4)bats (macos-latest 1/4)いずれもubuntu/windowsでは発生せず、macOS runner限定で2回とも再現しています。いずれもguarded single-job rerunで(少なくとも1件は)解消しており、hang/cancelではなく通常のtest failureです(Issue #88のCIハングとは別の症状)。
この差分との関連
このテストファイル自体、および
scripts/team-work.sh(本fork独自の機能)は無関係です。upstream由来のテストコードそのものに内在する問題と考えられます。次のステップ(未着手)
tests/test_remote_engine_start_refusal.bats内で、このテストの前後に同じ.config.lockパスを操作する他のテストがないか確認する。.config.lockディレクトリを確実に除去しているかを確認する。Codex復帰後、Issue #88と合わせて優先度を判断のうえ着手を検討してください。