Disable quiesce_stops_the_machine and quiesce_wakes_on_the_last_park behind their filed defects - #574
Conversation
…behind their filed defects quiesce_stops_the_machine: a third sighting of the same shape already tracked in issues/kernel/quiesce-stops-the-machine-stayed-up-beside-other-guests.md, now on the orchestrator's Fast tier for PR #566 at 74f7d71 — a diff that is host-side only — after 266 s, with no `stop:` record in its capture. quiesce_wakes_on_the_last_park: a distinct shape from issues/build/quiesce-wakes-on-the-last-park-lost-its-serial-ready-beside-other-guests.md's empty-uart-after-a-clean-stop failure. Three orchestrator Fast-tier runs on branches that touch no quiesce code (539r7-fast.log, 555r2-fast.log, 559-fast.log) carry the identical `the stop gave up on 2 thread(s) that never reached a safe point`, `stop: 3 of 5 userland thread(s) stopped ... over 2 sweep(s)`. Filed issues/kernel/quiesce-wakes-on-the-last-park-gave-up-on-two-parked-threads.md for it. A flaky test is disabled at once, never re-run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
|
Review of #574 at CI Net: +47 −1. Tooling data +8 ( Judgements:
BLOCKER
NOTE
REMOVE
SEND BACK |
…ows, and file the harness's misreport quiesce_stops_the_machine was disabled behind a finding whose title and exit rested on the harness's message that the guest asked for a reboot and stayed up. PR #566's capture at 74f7d71 refutes that: writer 5's first pass ran from 2.170 s to 7.434 s, the job printed "5 of 6 writers reached their loop in 5s" at 6.874 s and exited 1, and it never printed "asking for the reset". No stop began. PR #524's capture at 235c5a5 shows the same with "3 of 6", and nightly run 36351950439 on PR #555 at d265676 with "4 of 6". - The slow pass is the defect quiesce_dump_holds_the_stopped's issue already tracks, whose exit names a first write-and-fsync pass over 5 s. That issue is renamed to what both tests show, and gains these sightings. Both rows point at it. - The stops finding is folded into it and deleted. It carried no durable line for a module header; its three sightings move with their evidence. Its a58abf5 sighting also had no stop: record, and whether that job printed its give-up line was not recorded. - stopped_boot waits its whole QMP budget and then calls returned_to_firmware before it reads the console, so a job that never asked is reported as a guest that asked. In the #566 capture every scheduler heartbeat from 10.750 s to 253.244 s was idle, and the test went red after 266 s. Filed as tooling, held by the orchestrator. - The park issue is renamed: its records show 0 block operations open, so both threads were running, and one was the held thread, which last::hold keeps spinning while a sweep counts 2. It now names each sighting's PR and head, adds the 98e803c stop that gave up, labels the dispose_yield suspect as a hypothesis, and records that woken_by_its_threads has no enabled caller. Its exit asks for an instrument that names each thread still running, and for that coverage back. - Deleted: the scratch log names and paths, "after a stop that reported every thread stopped", "on a loaded host", and the build/ park issue's "--known-red answers NO". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
|
Review of #574 at NOT READY FOR REVIEW |
|
Review of #574 at CI
Net since Round 1 BLOCKER
Round 1 NOTEs and REMOVEs
Judgements asked for
BLOCKER NOTE
REMOVE
LAND AFTER NAMED CHANGES |
…rences from it and the harness issue The park issue's slug and title said "threads running" beside the held one, but every record carries 2 thread(s) and one of the two is the held thread by construction — so the stop gave up on one thread beside it, and "running" never held as a scheduler state. Renamed to issues/kernel/quiesce-wakes-on-the-last-park-gave-up-on-one-thread-beside-the-held-one.md and the redlist row moved with it. Deleted the park issue's false inference that 0 open block operations means neither thread was parked: stop_if_blocked refuses a thread parked in SYS_FSYNC's OpenUpdate, which adds 0 to in_flight, so logd parked between refused fsync attempts is a candidate the records cannot exclude. Added it as a second labelled hypothesis beside the dispose_yield one. Deleted the false claim that none of four branches touch the guest's stop path (PR #510 changes fat32_adapter's refused-write path, where an fsync park happens), and the stale count of disabled guest tests that PR #564 moves. Deleted the harness issue's false claim that returned_to_firmware runs before the boot console is read (power.rs judges the boot console and the drained tail first) and its false claim that every writers-issue sighting carries the same never-asked message (a58abf5's give-up line was never recorded). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
…d's name open Answers the SEND BACK on #575 at d346d9d. - fsd's new name is open with the owner (candidate `fileserver`, `files` kept for the file manager); the invented rename of the file manager goes. - The rename is stage 1, first after #536, briefed as an ABI brief since it touches toyos/src, toyos-abi/src, userland/libc/src and the rust fork's ToyOS files. Its exit is a case-insensitive substring search over the six daemon names and a letter-bounded search for `init`, each with an explicit exclusion list judged per match; issue bodies are excluded as recorded evidence. Measured outside issues/ at 62e7e8c: 3641 daemon substring hits (3419 outside the exclusions), 2289 `init` substring hits, 1589 letter-bounded (1073 outside the exclusions). - Stage 2's exit names the crate `toyos-supervisor` and its decisions, now including the stop-order derivation and a host test refusing an undeclared cycle; it is unmet today and cannot go vacuous under the rename. - Stage 3's exit adds a two-service reverse-order test that reds on forward and all-at-once order. - Stage 4's exit names the five claims the stop's coverage must assert, by a host test or a guest test at Tier::Fast or Tier::Nightly with no redlist row, so it cannot be met by deleting tests; the per-test lists that conflicted with #564 and #574 go. - The power-broker track loses its false parenthetical and item 1: toybox holds the `power` connector, not the bit. - Every REMOVE the review listed is taken. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
src/redlist.rs keeps main's ftruncate_flush_race, quiesce_stops_the_machine and quiesce_wakes_on_the_last_park rows, drops quiesce_dump_holds_the_stopped and quiesce_wakes_on_the_last_exit, whose tests this branch deletes, and takes #554's removal of the xhci_flap row. The writers issue #574 renamed stays expected-red with main's exit, since quiesce_stops_the_machine's row cites it; its opening sentence named the deleted quiesce_dump_holds_the_stopped as booting quiesce_writers and goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j
What changed, and why
quiesce_stops_the_machineis disabled behind the slow first pass its capture shows.In PR #566's Fast tier at
74f7d717, the test's job gave up before any stop began:quiesce_writers: 5 of 6 writers reached their loop in 5s;===TEST_END test_rs_quiesce_writers exit=1===;6 writers are running; asking for the reset.PR #524's capture at
235c5a5bshows the same with3 of 6. So does nightly run 36351950439 on PR #555 atd2656765, with4 of 6.quiesce_dump_holds_the_stoppedboots the same job. Its issue already tracked this pass: its exit names a writer's first write-and-fsync pass that takes over 5 s. That issue is renamed toissues/kernel/a-quiesce-writers-first-pass-outlasts-the-jobs-five-second-spin-up.mdand gains these sightings. Both tests' rows point at it.
The stops finding is folded into it and deleted.
issues/kernel/quiesce-stops-the-machine-stayed-up-beside-other-guests.mdwas akind: finding, and its title and exit rested on the harness's message. It had no durable line for a module header, so its sightings move to the writers issue. Its first sighting, ata58abf50, also had nostop:record. Whether that job printed its give-up line was not recorded.The harness's misreport is filed as tooling:
issues/build/a-stopped-boot-whose-job-never-asked-waits-out-the-reset-budget-and-says-it-asked.md.stopped_bootwaits its whole QMP budget. It then callsreturned_to_firmware, and that function reports anyNoneas a guest that asked for a reboot and stayed up. In the #566 capture, every scheduler heartbeat from 10.750 s to 253.244 s was idle, and the test went red after 266 s. The owner istests/common/power.rs, held by the orchestrator.quiesce_wakes_on_the_last_parkis disabled behindissues/kernel/quiesce-wakes-on-the-last-park-gave-up-on-one-thread-beside-the-held-one.md.Three Fast tiers carry
stop: 3 of 5 userland thread(s) stopped ... in 2010 ms of a 2010 ms budget over 2 sweep(s), 0 of N userland block operation(s) still open: PR #539 at2d6d228f, PR #555 atd2656765and PR #559 atac948e6a. The earliest stop that gave up is PR #510's at98e803cb.One of the two threads is the held thread, which
quiesce::last::holdkeeps spinning while a sweep counts 2. The issue does three things:dispose_yieldsuspect and thelogd-parked-in-fsyncsuspect as two labelled hypotheses;woken_by_its_threadshas no enabled caller;The build/ park issue loses its
--known-red answers NOline, which is no longer true.Round 2, after review. The park issue is renamed again to
issues/kernel/quiesce-wakes-on-the-last-park-gave-up-on-one-thread-beside-the-held-one.md:every sighting carries 2 thread(s), one of them the held thread by
construction, so the stop gave up on one thread beside it — not "threads,"
and "running" never held as a scheduler state. Deleted from it: the false
inference that 0 open block operations means neither thread was parked
(
stop_if_blockedrefuses a thread parked inSYS_FSYNC'sOpenUpdate,which adds 0 to
in_flight, so alogdfsync park is a candidate therecords cannot exclude — added as a second labelled hypothesis beside
dispose_yield's); the false claim that none of four branches touch theguest's stop path (PR #510 changes
fat32_adapter's refused-write path,where an fsync park happens); and the stale four-of-six disabled-test count.
Deleted from the harness issue: the false claim that
returned_to_firmwareruns before the boot console is read, and the false claim that every
writers-issue sighting carries the same never-asked message (
a58abf50'sgive-up line was never recorded). Merged
origin/main.Gates
cargo test --libcargo test --test toyos-build -- --listdisabledwith their issuecargo run -- --known-red quiesce_stops_the_machineYES, disabled, the writers issuecargo run -- --known-red quiesce_wakes_on_the_last_parkYES, disabled, the park issuecargo run -- --known-red quiesce_dump_holds_the_stoppedYES, disabled, the writers issue (renamed)Unsure
quiesce_dump_holds_the_stopped. It is renamed and retitled here, because a row forquiesce_stops_the_machinepointing at a file named for the dump test and USB transport breaks would name the wrong failure.a58abf50sighting was found, so that sighting is attributed to the slow pass by its shape alone.Not run here
This PR changes no code. Guest tests are the orchestrator's to run.
🤖 Generated with Claude Code
https://claude.ai/code/session_01W6rME2DoqwjcYFStYHHY4j