Shutdown test hardening exceeds startup deadline and leaks child on failure #92

Closed
opened 2026-10-14 18:22:29 +08:00 by Breadway · 1 comment
Owner

Repair implemented on existing PR91, no duplicate PR. The test enforces one checked 5s deadline over cold child startup, log-based bound-address discovery and bounded HTTP health probes. Child guard kills and waits on failure/unwind, joins both pipe readers, bounds capture; regressions cover delayed discovery, hung health, early-exit diagnostics, failed SIGTERM, panic unwind and output overflow. Original 5s/2s/1s budgets are unchanged.

Run 72 exact-head log: initial child line at 10:18:21.04; timeout at 10:18:26.54; no bind line. This does not prove a port race or identify the stalled call. Local fault injection: delaying SQLite fsync by 300ms on cold WAL+migrations yielded connection at ~1.22s, migrations at ~6.06s, seed at ~6.42s and bind at ~6.43s. This supports slow cold DB startup as a plausible mechanism, but is not direct evidence of run 72's stage. Exact-head run 74 at 67b648d passed all CI steps including cold-start shutdown test, showing that this runner currently meets the five-second budget. CI captures output for successful tests, so actual per-stage values remain hidden in its log. BB-104's synced closes->BB-97 relation remains stale; do not edit DB directly or mark done. Reconciliation attempt returned empty response and needs supported sync follow-up.

Repair implemented on existing PR91, no duplicate PR. The test enforces one checked 5s deadline over cold child startup, log-based bound-address discovery and bounded HTTP health probes. Child guard kills and waits on failure/unwind, joins both pipe readers, bounds capture; regressions cover delayed discovery, hung health, early-exit diagnostics, failed SIGTERM, panic unwind and output overflow. Original 5s/2s/1s budgets are unchanged. Run 72 exact-head log: initial child line at 10:18:21.04; timeout at 10:18:26.54; no bind line. This does not prove a port race or identify the stalled call. Local fault injection: delaying SQLite fsync by 300ms on cold WAL+migrations yielded connection at ~1.22s, migrations at ~6.06s, seed at ~6.42s and bind at ~6.43s. This supports slow cold DB startup as a plausible mechanism, but is not direct evidence of run 72's stage. Exact-head run 74 at 67b648d passed all CI steps including cold-start shutdown test, showing that this runner currently meets the five-second budget. CI captures output for successful tests, so actual per-stage values remain hidden in its log. BB-104's synced closes->BB-97 relation remains stale; do not edit DB directly or mark done. Reconciliation attempt returned empty response and needs supported sync follow-up.
Author
Owner

Repair on existing PR91. Independent exact-head verdict and actionable file/line checklist: #91 (comment). No merge. Preserve startup5s, SIGTERM2s and SSE1s budgets.

Repair on existing PR91. Independent exact-head verdict and actionable file/line checklist: https://git.breadway.dev/Breadway/breadboard/pulls/91#issuecomment-4902. No merge. Preserve startup5s, SIGTERM2s and SSE1s budgets.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadboard#92
No description provided.