Skip to content

test_remote_engine_start_refusal.bats: sync startのlock retake断定テストがmacOSで断続的に失敗する(2回中2回) #91

Description

@kappaseijin4claude

概要

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と合わせて優先度を判断のうえ着手を検討してください。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions