Skip to content

Preserve original query timeout before transport retry - #144

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/query-authority-143
Oct 13, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/query-authority-143

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

When an admitted workflow query returns a canonical HTTP 504, the default transport currently sends another POST and can hide the original failure behind a distinct query task. Preserve the first typed QueryFailed response for the three existing query timeout reasons on control-plane v2 query routes, including namespaced runtime URLs.

The focused controls exercise the actual Client path with default 1.20 and explicit 1.19 discovery, asserting one admission and the original status/reason/body. Unknown or malformed responses, unrelated routes/statuses and ordinary transport retries retain existing behavior. Local checks: 39 focused tests, Ruff and mypy pass; the twelve canonical-timeout controls fail against normally installed published 2.5.11.

This addresses the caller retry boundary in #143. Query hydration/lease authority remains open there; the missing original Server timing/status contract is separately tracked in Server #433. The original instrumented failure and frozen published cohorts remain unchanged. Full source gates and a separately installed stable candidate/publication remain required.

Refs #143.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Complete source CI 38343855047 passes at 3256e2a79ede12b9d71f26e50a4a80dc88d4978c. The normally installed compatible stable candidate passes 239 client/retry tests; all twelve canonical-timeout Client regressions fail published 2.5.11. Ruff and mypy pass, and the corpus guard/history fixtures remain unchanged.

Four actual HTTP controls on unchanged immutable Server 2.6.1 / MySQL / Redis pass with default 1.20 and explicit minimum 1.19. Each starts its own synthetic workflow; the isolated control's query/lease limits are 3/8 seconds, independent of every original failed reference and its deadlines. Published 2.5.11 sends three slow-query POSTs and exposes the final failure after 9.66–9.82 seconds. The candidate sends one, exposes the first original query_worker_execution_timeout / 504 body after 3.19 seconds, and preserves that response exactly. Each control also executes an ordinary fast query returning 7. Real leased query identities and typed late-completion fences are retained.

The first observer setup failed before discovery/admission and its stack was immediately retired. Fresh corrected controls use a separate stack. All runtime/control containers, networks and database volumes are now retired, before the original 04:15 cutoff.

This qualifies the caller retry correction. Query hydration/lease authority remains open in #143, and Server #433 owns the actual timing/status boundary. No Source600 retrospective cause, original deadline extension, frozen retuple or new Nexus capability is inferred. Stable #145 and registry verification remain separate gates.

@rmcdaniel
rmcdaniel merged commit f286ec0 into main Oct 13, 2026
13 checks passed
@rmcdaniel
rmcdaniel deleted the fix/query-authority-143 branch October 13, 2026 04:10
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