Skip to content

Capture worker startup phases before integration cleanup - #157

Merged
rmcdaniel merged 4 commits into
mainfrom
test/worker-startup-observations
Oct 17, 2026
Merged

rmcdaniel merged 4 commits into
mainfrom
test/worker-startup-observations

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Refs #123.

The ordinary task-family driver counts primary-client poll starts but loses request timing and handler progress. A fatal worker can remain unnoticed while the driver waits for a result, and a failed stop previously skipped its runner drain.

This test-only change:

  • Captures bounded recent/in-flight HTTP metadata across primary and cloned clients, without headers, query strings, payloads, task tokens or error messages.
  • Uses published worker interceptor hooks plus test-handler milestones to distinguish task delivery from handler entry/return.
  • Reports failure state before cleanup and preserves the original failure when shutdown also fails.
  • Surfaces a fatal worker while the original result wait is pending, and drains runners even if stop fails.
  • Preserves the existing six split/mixed/timer cases, 30-second result/startup limits, 10-second shutdown wait and two-second durable timers.

The observer/driver component at 1df8875c63a0215432de37ae4ae8eb8af7e847aa passes twelve constructed controls and Ruff. These include additional-client capture, streaming preservation, credential/payload omission, bounded records, cancellation, fatal-worker propagation and cleanup. A two-runner counterfactual fails the initial helper because it skipped its pending peer; the corrected helper drains both. The actual Client.register_worker() contract also caught a registration-route misclassification, which is corrected and now asserted in every real case.

Final head e13e687e1b46c8eaef768483e3b7106ffc3557cb / tree bb669b979b01a9484801a626c8667743480cc698 changes only two exception-test setups after Sonar's S5778 review. The observer and integration driver exactly match the installed-qualified component. Sonar39011919697/official app reports0 OPEN/CONFIRMED PR findings; the previous green gate had two actionable findings, which were reviewed and fixed. No rule/profile/threshold change. Exact final-head CI39011919717 passes all10 jobs. Merged at 0d33fba37470ebb0a6b292c8e3e3f0e08ec2c61a with the identical reviewed tree and exact parents91c9ee8/e13e687. Independent main CI39012437645 also passes all10 jobs, including HTTP integration. Main Sonar39012437631/App and boundary39012437578 pass. The two new observer files have0 OPEN/CONFIRMED main findings; no zero-backlog claim. Merged remote head is independently404.

Published-package check

Normally installed PyPI 2.5.15, source 35aad4ab344cf13e01de3e5f4704380eac1532a6, has all34 package files verified against its immutable source. No editable/path/version substitution. Python3.12 / httpx0.28.1 / fastavro1.13.1, against unchanged published Server2.6.1 / installed Workflow2.5.12, index sha256:ef043e5c582761e486a64a2ab4226476e17ae4f71682ef59d6b9ddd784d246b6, MySQL8.0.43 and Redis7.

  • Fresh final-source split/mixed/timer × run/run_until: 6 pass, 25.68seconds total, original30s/10s limits and2s durable timers unchanged. This is functional qualification, not a comparative performance claim.
  • Eight successful registration replies and eight successful deletions, including all additional query-client requests; every case ends with0 in-flight requests. Slowest registration reply89.54ms. Workflow handler milestones are present for all cases, and each of the four activity cases records one activity invocation.
  • Stopped-service SQL verifies6 completed original runs,4 first-attempt activities,18 completed first-attempt tasks (12workflow/4activity/2timer),34 history events,0 repairs,0 failed jobs and0 worker registrations.
  • API and queue worker explicitSIGTERM exit0/noOOM. The maintenance shell required explicitSIGKILL137/noOOM; this is no graceful-maintenance qualification.

The preceding six-case cohort passed business execution but did not distinguish POST registration from control requests. Its observer limitation remains explicit; fresh final-source originals supply the registration result above. No old failure is relabeled.

All local phase containers, networks, data,72MiB dependencies and raw logs were independently absent at06:56:52UTC, before07:15; borrowed images remain protected. Exact candidate and independent main source/HTTP/Sonar checks pass. No package release is needed for these test-only changes.

The original unconstrained stalls remain unexplained. This is improved integration evidence, not an SDK/runtime cause or fix claim. No package source, dependency, version, protocol or publication change.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 17, 2026 07:07
@rmcdaniel
rmcdaniel merged commit 0d33fba into main Oct 17, 2026
14 checks passed
@rmcdaniel
rmcdaniel deleted the test/worker-startup-observations branch October 17, 2026 07: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