You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ad4c6c6
Browse filesBrowse the repository at this point in the historyBrowse files
Retry the comunica warm-up probe instead of failing on a refused port
The cross-engine agreement job failed on a commit that changed only a
docstring, and its message named a timeout that had not happened:
comunica could not read /work/.../expanded.nt within 3600s
(raise --comunica-warmup-timeout, or use --engine qlever):
<urlopen error [Errno 111] Connection refused>
It had waited milliseconds. `timeout=` on urlopen is the socket timeout
-- how long to wait for a response -- and a refused connection comes
back from the kernel at once, so the budget never applied. `_await_bind`
already loops and tolerates refusal; `_await_warm` made exactly one
attempt. That asymmetry was the bug: comunica answers the bind probe and
then hands the socket to its worker, so the next connection can be
refused for a moment while the process is perfectly healthy.
The probe now retries until the budget is genuinely spent, and the
reported duration is measured rather than read back from the flag.
Retrying must not become tolerance for a dead engine, so two conditions
still fail immediately: the server process exiting, which keeps its exit
code and log tail, and the endpoint *answering* with an error. An
HTTPError means comunica replied -- a source it cannot parse would
answer every probe identically, and retrying it would spin for the whole
budget before reporting what it knew on the first attempt.
This gates merges, and it is timing-dependent rather than rare: the
image floats its base and its apt nodejs and python3, so a rebuild can
shift the timing that exposes it. `HdtEngine` shares the mixin, so it
was exposed to the same failure.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments