mirror of
https://github.com/casjaysdevdocker/forgejo
synced 2026-09-24 18:50:09 -04:00
📝 Log beta-test findings from prod-readiness verification 📝
Built the image locally, ran it with the README's documented flags, and had the beta-tester agent run a structured test pass against it to verify today's Dockerfile OCI-label/HOSTNAME fixes and the pre-existing act_runner cache-secret/token-regex fixes actually work at runtime. Core paths (HTTP, SSH, act_runner registration, admin user/repo/token creation, git clone over HTTP+SSH, restart recovery) all passed; three issues found are logged here rather than left only in conversation. - TODO.AI.md: log a Medium-severity healthcheck race (container reports healthy before the published HTTP port reliably accepts connections right after `docker restart`), a Low-severity test-scope gap (git push not exercised, only clone), and a Low-severity informational note (`/api/v1/admin/runners` returns 404, likely just an unsupported route in Forgejo 16.0.3, not confirmed as a bug)
This commit is contained in:
+39
@@ -1,5 +1,44 @@
|
||||
# TODO.AI.md
|
||||
|
||||
## Found, not fixed — healthcheck reports "healthy" before HTTP port reliably reachable after `docker restart`
|
||||
|
||||
Found via a structured beta-test pass (`beta-tester` agent) against `forgejo-test:local`
|
||||
built and run locally after today's Dockerfile/act_runner fixes, to verify prod-readiness.
|
||||
|
||||
- Repro: `docker restart` the container, poll `docker inspect --format
|
||||
'{{.State.Health.Status}}'` until `healthy`, then immediately issue an external HTTP
|
||||
request (e.g. `curl http://localhost:18080/api/v1/version`) — the very first request
|
||||
right after the healthy transition returned `Recv failure: Connection reset by peer`,
|
||||
even though the internal `forgejo web` process was already running per `ps aux`. A retry
|
||||
seconds later succeeded normally.
|
||||
- Likely cause: a short window where the internal process is up (satisfying whatever the
|
||||
healthcheck probes internally) but the Docker userland-proxy/port-publish path for
|
||||
`-p 18080:80` hasn't stabilized yet, or the health check races the actual listener bind.
|
||||
- Impact: anything that gates traffic on Docker's health status (`docker-compose`
|
||||
`depends_on: condition: service_healthy`, orchestrator health gates) could send requests
|
||||
into this gap and get a connection reset instead of a retry-able error. Self-resolves
|
||||
within seconds; no data loss observed.
|
||||
- Severity: Medium. Not fixed here — needs a decision on whether to add a stabilization
|
||||
delay to the healthcheck script or have it check the published port itself rather than an
|
||||
internal probe; out of scope for the commit that prompted this beta test.
|
||||
|
||||
## Found, not verified — `git push` (HTTP + SSH) not exercised by beta test
|
||||
|
||||
The beta-test agent verified `git clone` over both HTTP basic-auth and SSH (before and
|
||||
after restart) but could not verify `git push` — its own commit-safety guard
|
||||
(`no-subagent-commit.sh`) blocks any Bash command containing `git commit`/`git push`, even
|
||||
against an unrelated scratch repo. Read-path (clone) confirmed working; write-path (push)
|
||||
still unverified. Low severity — recommend a push test the next time this image is
|
||||
verified, from the main session rather than a subagent.
|
||||
|
||||
## Found, informational only — `GET /api/v1/admin/runners` returns 404 for basic-auth admin
|
||||
|
||||
Found during the same beta-test pass. Not confirmed as a defect — may simply be an
|
||||
unsupported/nonexistent API path in Forgejo 16.0.3 rather than a permissions bug; the
|
||||
README doesn't document this specific admin API endpoint. Runner functionality itself
|
||||
(registration, daemon startup, job labels) was independently confirmed working via logs and
|
||||
process inspection, so this is flagged only for awareness, not as a known-broken feature.
|
||||
|
||||
## Found, not fixed — stale `__copy_templates`/`DEFAULT_TEMPLATE_DIR` calls in functions/entrypoint.sh
|
||||
|
||||
Found incidentally while running AI.md PART 8's dead-reference gate ("No `__copy_templates`
|
||||
|
||||
Reference in New Issue
Block a user