丁寧なデバッグ
20250624
先週末と今日でmasterブランチでCIがfailしていたのを直そうとPRを出した。
1回目はCircleCI上で並列実行しているE2Eテスト(Cypress, Chrome)が以下エラーで度々落ちるようになっていたのを直そうとした。
code:linux
Missing X server or $DISPLAY
Cursor上でCircleCIのconfig.yamlを開きつつ、Claude3.7とペアプロ&関連エラーをググるというプロセスでPRを出したが、レビュアーの方に「複数回リトライしたらfailしました。しっかり検証を行ってからレビュー依頼を出してください」とアドバイスをいただいた。週末の勢いとテンションでやるのはだめだな・・・。
明示的にxfrvを起動し、displayを割り当てる方法を適用したがダメだったらしい。先ほど再度調べたところ以下のディスカッションとIssueを見つけた。
どうやらCircleCI側の問題らしく、Docker Imageのバージョンが古いものを参照しており、レースコンディションにより動作が不安定になっているとのこと。(詳しい原因まではまだ理解できていない)
話が逸れたが、確証を得られないままにレビュー依頼を出すのはダメで、自身でデバッグと検証をしっかりと行い、原因を特定できた状態でレビュー依頼を出すべきだった。
今日はserver側の1テストケースがどこかのタイミングでfailするようになったのを直そうとした。対処療法的な差分は出せたが、failする根本原因が掴めていないままPRを出していた。また、どの差分から落ちるようになったのかを特定できていないままだった。CircrleCI上でどうやって特定するのか後で調べたい。
結果的にチームリーダーの方とペアプロして、原因を特定できた。これは先週のものとは異なり丁寧にデバッグすれば自身でたどり着けた答えのはずだったので、ここでも焦りから答えを急いでしまっていたことに気づいた。少なくともIn Reviewにする前に、原因と解決策を明確に書くことができなければ、何かがまだ分かっていないサインなので、一度立ち止まるようにしたい。