generated from erix/meta
[BUG] Positive console-progress host fixture expires before completion #25
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/integration#25
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A positive console-progress host fixture fails in Integration CI before the VM
catalog. Its watchdog returns status 125 instead of zero while a synthetic Python
child is intended to emit verified framebuffer milestones without serial output.
The complete 15-test group reports one failure; no guest VM is involved in this
failure.
Reproduction
At Integration
b518b6ad1d2f3e7a36a5d796eaff3103c051bb84, the maintained workflowruns:
The failing case is
ConsoleWatchdogProcessTests.test_verified_completions_allow_framebuffer_work_without_serial_output.The retained observation is push CI 1567.
No isolated rerun or failure-frequency estimate has been established.
Expected and actual behavior
The positive fixture expects the watchdog to accept its complete ordered
framebuffer transcript and return the synthetic child's zero status despite
absent serial output.
Instead, the assertion at test line 297 receives 125. The diagnostic says no
change in the fixture's selected serial file for 0.25 seconds. The group ends
Ran 15 tests in 5.537s,FAILED (failures=1), and the workflow step returns 1.Earlier invalid-argument diagnostics belong to expected negative cases and are
not this failure.
The watchdog supervises a host
python -cevent writer, not QEMU. It may creditonly four verified milestone types; activity and late evidence cannot revive an
expired deadline. The retained diagnostic does not report the last emitted or
accepted milestone, child start/completion timestamps, or scheduler activity.
It therefore does not establish whether writer progress, watchdog polling,
startup or another cause accounts for the observed deadline.
Environment and identity
b518b6ad1d2f3e7a36a5d796eaff3103c051bb84; push run 1567,API run 9037, integration job 19432, attempt 1; terminal failure.
Integration
e2b1cf5995bcf6334839cda9a013e90fa97787d5. This observation does notidentify a causal source commit.
and observer file, framebuffer mode, 0.25-second stall interval, 0.02-second
polling interval, 0.1-second termination grace and a five-second outer wait.
each. Source-derived nominal spacing between credited milestones is at most
0.16 seconds, excluding Python startup, file I/O, scheduler and polling delay.
These are planned values, not measured timestamps for the failing invocation.
by this log review. No contention or common cause with filesystem VM failures
is inferred.
Evidence and prior checks
The complete job log and exact run/job metadata are retained. The assertion is
reported at 2026-09-12 12:30:27 UTC. Rust and Markdown jobs pass at the same head;
the Rust job records 320 default and 321 all-feature tests. The VM catalog and
later image gates are not reached. Exact-head PR run 1568 was waiting at the
observation; it is not replacement acceptance.
The test deletes its temporary directory after its subprocess returns, and the
retained CI log contains no observer-file snapshot. A read-only source review
establishes the fixture construction but cannot reconstruct the actual failing
event timeline. No retries, deadline changes, source changes or warning
suppression were used to classify the failure.
Tracking
Related validation stream: Integration #5;
component audit: Integration #11;
implementation tracking: WIP PR #12.
Determine the failing fixture timeline and preserve the verified-progress,
negative/stale-evidence and expiry-order assertions. Host test reliability and
full VM acceptance require distinct evidence; relaxing guest deadlines is not
an established remedy.
A fixture-only follow-up is published at Integration
4bb694279e4a83aad95d14780434340beb4c649cin PR 12. Synthetic writers close each record explicitly, and failed status assertions now include bounded scalar file observations captured before temporary cleanup. Existing cadence, expiry order, deadlines and assertions are unchanged; all 15 focused warning-denied tests pass locally. The production watchdog is unchanged. Written records are distinct from accepted progress, so this does not establish the earlier failure cause or close the issue. The later current-head CI observation is recorded below.At Integration
381bccd87c5632e9d1af8aa9d0aca295cbc00e1f, PR CI 1574 fails the same positive assertion before the VM catalog at 2026-09-12 14:48:22 UTC. It returns 125 rather than zero. The new scalar observation records 279 bytes, three complete written records and last eventconsole_disabled_input_rejected; no preexisting or truncated file, no serial file, total wall interval 0.434021529 seconds. All 15 tests ran in 5.634 seconds with one failure. These fields do not identify when events were written or accepted, so neither scheduling contention nor a watchdog defect is established. The exact-head push run passes this host group and later enters the VM catalog; both outcomes remain recorded, and the failure is not closed.A deterministic fixture correction is published at Integration
96f1c21848d534683fc077779dd92d332e3e4779in PR 12. The test-local clock and child schedule exercise the actual watchdog run loop and reader against real files. All 21 focused warning-denied tests pass locally, covering 33 events, 14 independent milestone credits, before/exact/late expiry, non-credit and serial-only activity, malformed evidence and preservation of nonzero child status. Four independent sensitivity mutations are rejected. The five existing real negative subprocess cases remain unchanged, as does the production watchdog. Test-local termination mocks establish control flow rather than complete process-tree cleanup. This removes wall-clock scheduling from the positive policy fixture without attributing the historical failure to a proven cause.At 2026-09-12 16:02 UTC, exact-head push CI 1575 and PR CI 1576 both pass the 21-case group (2.660 and 2.661 seconds). Rust and Markdown jobs pass; both main jobs remain running in later host checks. Full CI acceptance is pending, and the preceding failed runs remain separately retained.
At 16:04:48 UTC, push CI 1575 subsequently fails a separate host process-cleanup test while reading proc stat (
ProcessLookupError, 36-test group with one error), before the VM catalog. Its watchdog acceptance above remains valid. PR CI 1576 continues independently; neither outcome establishes full current-head acceptance.erikinkinen referenced this issue2026-09-12 15:24:49 +02:00