[Bug]: fw doctor Watchtower smoke test probes localhost, so all endpoints fail when Watchtower is bound to FW_HOST
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 76/100
調査の方向性
bin/fwの3649行目と3672行目付近を読み、次にweb/smoke_test.pyの116行目と184~187行目付近を読んでください。fw doctorがどのように_doctor_wt_urlを解決し、スモークテストの引数を渡すかを追ってください。Watchtowerがループバック以外のFW_HOSTにバインドされているときに、スモークテストが検証済みURLを調べて成功すれば完了です。スモークテストのベースURL引数とfw doctorの呼び出しについて、テストを追加するか実行してください。
索引モデルが issue の本文から書いたものです。
説明
Bug Description
fw doctor first finds Watchtower at its real address: bin/fw:3649 resolves _watchtower_url (identity-verified) and checks ${_doctor_wt_url}/health. It then runs the smoke test with the port only:
bin/fw:3672:python3 "$FRAMEWORK_ROOT/web/smoke_test.py" --port "$_doctor_wt_port" --jsonweb/smoke_test.py:116:base = f"http://localhost:{port}"web/smoke_test.py:184-187: the only arguments are--port,--test-clientand--json; there is no way to pass a host.
When Watchtower is started with FW_HOST=<a non-loopback address> (as documented, to avoid listening on 0.0.0.0), it does not listen on localhost, so every probe is refused while the health check just passed.
Steps to Reproduce
FW_HOST=<a LAN or VPN address of the host> fw watchtower start --port 3010curl -s -o /dev/null -w '%{http_code}' http://<that address>:3010/returns 200.fw doctorprintsWARN Watchtower smoke: 53/53 endpoints failed, each with<urlopen error [Errno 111] Connection refused>.python3 web/smoke_test.py --port 3010 --jsongives the same 53 failures.
Expected Behavior
The smoke test probes the same base URL that fw doctor has just verified (for example a --base-url argument fed with $_doctor_wt_url, defaulting to localhost when absent).
Actual Behavior
WARN Watchtower smoke: 53/53 endpoints failed on every fw doctor run, while all pages answer 200 at the real address. A permanent false warning hides a real smoke failure.
fw doctor output
AI Agent
Claude Code
Operating System
Linux
Additional Context
1.8.11 (e42aa41bf), vendored consumer, Linux (Ubuntu 20.04, systemd 245), Claude Code. Watchtower started with FW_HOST set to a VPN address, as the operator's rule requires.
- 主要言語
- Shell
- スター
- 16
- フォーク
- 6
- 平均マージ
- 6時間 24分
- マージ済み PR(30日)
- 5
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DimitriGeelen/agentic-engineering-framework のほかの issue
-
area:doctor bug severity:low status:accepted triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
DimitriGeelen/agentic-engineering-framework#100 · コメント 3 件 ·
-
area:context bug severity:low status:accepted triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
DimitriGeelen/agentic-engineering-framework#96 · コメント 3 件 ·
-
area:cli bug severity:medium status:accepted triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
DimitriGeelen/agentic-engineering-framework#95 · コメント 3 件 ·
-
area:watchtower bug severity:low status:released triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
DimitriGeelen/agentic-engineering-framework#94 · コメント 4 件 ·
-
area:watchtower enhancement severity:low status:released triaged
難易度 2/5 1時間未満 初心者へのやさしさ 75/100
DimitriGeelen/agentic-engineering-framework#91 · コメント 5 件 ·
DimitriGeelen/agentic-engineering-framework の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
phusion/passenger-docker#480 ·
-
Gemini: respect PLANNING_DISABLED=1 in lifecycle context hooks対応中かも @AmariAugustin が今日担当しました。 オープンbug good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
OthmanAdi/planning-with-files#329 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 2 日以内に返信
-
headers-parser: `forRegExp` does not escape regexp characters in path segments that contain `*`対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
mattpocock/skills#1307 ·
メンテナーはふだん 1 日以内に返信