Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Bug]: fw doctor Watchtower smoke test probes localhost, so all endpoints fail when Watchtower is bound to FW_HOST

Đang mở Phù hợp với người mới
#97 5 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
76/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, shell
Lĩnh vực
cli, testing

Hướng nghiên cứu

Đọc bin/fw quanh dòng 3649 và 3672, sau đó đọc web/smoke_test.py quanh dòng 116 và 184-187. Theo dõi cách fw doctor phân giải _doctor_wt_url và truyền các đối số cho smoke test; công việc hoàn tất khi smoke test kiểm tra URL đã xác minh đó và chạy thành công khi Watchtower được liên kết với một giá trị FW_HOST không phải địa chỉ loopback. Thêm hoặc chạy kiểm thử cho đối số URL cơ sở của smoke test và lời gọi fw doctor.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area:cli bug severity:medium status:fixed-on-bleeding-edge triaged
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" --json
  • web/smoke_test.py:116: base = f"http://localhost:{port}"
  • web/smoke_test.py:184-187: the only arguments are --port, --test-client and --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
  1. FW_HOST=<a LAN or VPN address of the host> fw watchtower start --port 3010
  2. curl -s -o /dev/null -w '%{http_code}' http://<that address>:3010/ returns 200.
  3. fw doctor prints WARN Watchtower smoke: 53/53 endpoints failed, each with <urlopen error [Errno 111] Connection refused>.
  4. python3 web/smoke_test.py --port 3010 --json gives 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.

Ngôn ngữ chính
Shell
Star
16
Fork
6
Merge trung bình
6 giờ 24 phút
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của DimitriGeelen/agentic-engineering-framework

Tất cả issue của DimitriGeelen/agentic-engineering-framework

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.