Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#97 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, shell
Área
cli, testing

Línea de trabajo

Lee bin/fw alrededor de las líneas 3649 y 3672, y luego web/smoke_test.py alrededor de las líneas 116 y 184-187. Sigue cómo fw doctor resuelve _doctor_wt_url y pasa los argumentos a la prueba de humo; el trabajo estará hecho cuando la prueba de humo compruebe esa URL verificada y tenga éxito cuando Watchtower esté enlazado a un valor de FW_HOST que no sea de loopback. Añade o ejecuta pruebas para el argumento de URL base de la prueba de humo y la llamada a fw doctor.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area:doctor bug severity:medium status:accepted 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.

Lenguaje dominante
Shell
Estrellas
16
Forks
6
Merge medio
6 h 24 min
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de DimitriGeelen/agentic-engineering-framework

Todos los issues de DimitriGeelen/agentic-engineering-framework

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.