Skip to content

作業ツリーから起動したキューが、後片付けで消えた cwd により --then の計画で落ちる #1886

Open

Description

@takemi-ohama

何を見つけたか

supervise.py queue 6-check.json --then 7-release.json をスプリントの作業ツリー(.worktrees/sprint/m1492)をカレントにして起動すると、6-check の merge ステップの後片付けがその作業ツリーを消し、続く 7-release が supervise_lib/decl.py の decl_roots の Path.cwd() で FileNotFoundError: [Errno 2] No such file or directory を出して「報告なし」(exit=1)で止まる。

どこで見つけたか

スプリント m1492 の検査 → 開発版のキュー(スプリント PR 1882 のマージ直後)。plugins/ndf/scripts/supervise_lib/decl.py の decl_roots、supervise_lib/slow.py の resolve_slow。

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

m1492 の受け入れ条件はキューの起動場所の扱いを含まない。根拠: MVV なし。

直さないと何が起きるか

メインディレクトリ以外から起動したキューが、後片付けの後の計画で必ず落ちる。プランは リポジトリ を持つので、cwd が消えていればそちらへ移る(またはキューが計画ごとに リポジトリ へ chdir する)形で直せる見込み。回避はメインディレクトリから起動すること。

直す場所

  • 現象レイヤー: plugins/ndf/scripts/supervise_lib/decl.py の decl_roots の Path.cwd()(:111 と :205 )。7-release の計画で落ちる
  • 修正レイヤー: plugins/ndf/scripts/supervise_lib/flow.py の queue_workflow(:480)と plan_workflow(:222)のプランの起動。キューは DBOS のワークフローで同じプロセスの中でプランを流すため、後片付けが作業ツリーを消すとプロセスの cwd が失われる
  • 修正方針: 向きの修正。decl_roots だけを直すのでなく、キューがプランごとに リポジトリ へ chdir するか、起動時に消えない場所へ移る。そうすれば cwd を読むほかの箇所も同じ形で直る(commands.py:236-239 / sprint.py:262 / templates.py:114 / actuals.py:37 )。回避(メインディレクトリから起動する)は手順として残す

由来

PR #1882

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions