Skip to content

Separate a transport failure from a missing header while waiting - #20

Merged
ptr727 merged 2 commits into
developfrom
fix/reload-wait-transport
Aug 4, 2026
Merged

Separate a transport failure from a missing header while waiting#20
ptr727 merged 2 commits into
developfrom
fix/reload-wait-transport

Conversation

@ptr727

@ptr727 ptr727 commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Why

The preflight already distinguishes a transport failure from an HTTP one. The reload wait did not, and it is the same defect one loop further down: read_release returned an empty string whether the host answered without the header or never answered at all, so a connection lost mid-wait reported as a config that never reloaded.

That diagnosis then names a dead config watcher and a restart as the remedy, for a host that is simply unreachable.

Verification

Reproduced by starting a container, letting the preflight pass, and killing it during the wait:

==> served by mirror-staging
FAIL: http://.../ became unreachable after 6s of waiting for the reload
     curl: (28) Connection timed out after 30005 milliseconds

A reply carrying no X-Blog-Release still reads as "no release" rather than as a transport failure, which is the distinction that matters: one means the config never reloaded, the other means nothing was measured.

All three environments pass afterwards, including the live staging site behind the auth gate: 1245 URLs honored on each.

🤖 Generated with Claude Code

The reload wait read an unreachable host as a reply carrying no release,
so a connection lost mid-wait reported as a config that never reloaded.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 4, 2026 22:34

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the live-URL check’s reload-wait logic so it can distinguish a transport failure (host becomes unreachable during the wait) from a successful HTTP response that simply lacks the X-Blog-Release header, aligning behavior with the existing preflight check.

Changes:

  • Adjust read_release to treat curl transport failures as a hard error while waiting for reload.
  • Emit a clearer failure message when the host becomes unreachable mid-wait, including curl’s stderr output.

Comment thread checks/check-live-urls.sh
Pipefail carries grep's no-match status out of the read, so a reachable
host serving no release header reported as a lost connection.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 4, 2026 22:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@ptr727
ptr727 merged commit 882bd66 into develop Aug 4, 2026
5 checks passed
@ptr727
ptr727 deleted the fix/reload-wait-transport branch August 4, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants