Skip to content

cross-review: drive.py --reopen が final=error で止まった耐久ワークフローを新しい実行の回へ移さない #1635

Open

Description

@takemi-ohama

何を見つけたか

drive.py --reopen を付けても、final=error で止まった(pause の)耐久ワークフローは新しい実行の回へ移らず、止まりの続きとして扱われる。
#1340 で足した --reopen(差分を足さずにもう一度回す入口。設計の決定 2)は、完了の記録を前回の結果として返すかの判定(loop_drive の rerun_reason / keep_finished)にだけ効き、止まりの実行の回には効かない。

どこで見つけたか

スプリント PR #1634 の cross-review(round 1 の指摘)。修正の担当が「要ユーザ判断」として見送った。

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

止まりの実行の回を捨てて新しい回を始めるか、止まりの続きとして扱うかは、耐久の記録(plugins/ndf/scripts/lib/durable.py の resolve)の契約に関わる。即時修正の 4 条件のうち「既存の契約を壊さない」を満たすと言い切れない。

決めること

  • --reopen が止まり(pause)の実行の回を見つけたときに、その回を取り消して新しい回を始めるか、止まりの続きから再開するか
  • 決めた振る舞いを durable.resolve の契約として書くか、cross-review の駆動の側で閉じるか

直さないと何が起きるか

担当の認証切れなどで final=error になった cross-review を --reopen で回し直しても、新しいラウンドが始まらない。利用者は運用の知見にある「保留の耐久ワークフローを durable.cancel_others で取り消す」手順を手で打つことになり、#1340 が無くそうとした手の修正が残る。

関連

由来

#1634

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions