Repository navigation
tests: the stick test waits for any load line past 1500, not one exact line - #1107
Conversation
Review: PR #1107 at bc280b4 (r1)Scope: one commit, +11 lines in Architectural assessmentThe CI facts are mostly right. The record has two problems. It names a mechanism the evidence does not establish, and it files the red under a host-side chardev defect when the red comes from the test's own wait. Logkeeper's documented policy can drop line 1500 inside the guest, so the stall can happen on any host and the record's exit condition would not remove it. The test waits for one exact line of a flood on a channel that drops old lines under that flood. That wait is the defect. It has a cheap fix inside the test. FindingsBLOCKER 1 —
BLOCKER 2 —
BLOCKER 3 —
SUGGESTION — Claims checked against CI and evidence
Identifying data
Net: +11 issue lines, 0 production, 0 tests. SEND BACK |
Review r2: PR #1107 at 0eb2c09Scope: against Architectural assessmentThe fix is in the right place. The test only needs to know that the load has passed line 1500 before it presses the power button; the stick's contents (at least 1 MiB of load lines, and the verdict) are the real assertion. Logkeeper keeps the newest held console line, so "any load line ≥ 1500" works whichever mechanism drops lines. A stall now means what its message says: no load line ≥ 1500 reached the console while the guest was waited on. r1's BLOCKER 2 is resolved. BLOCKERs 1 and 3 fall away with the reverted issue text. The mechanism evidence
FindingsBLOCKER —
SUGGESTION — the repository merges with merge commits only ( Note for the orchestrator (not blocking): in the fix run,
Other checks
SEND BACK |
…t line the_log_lands_on_the_boot_stick waited on the console for the exact line `stick_load: line 1500 `. Under the load the console falls behind, and logkeeper then sheds the oldest program lines it holds for the console. A shed line 1500 made the test stall with "it never stopped talking and never got there" while the guest was tens of thousands of lines further on. The nightly's kvm suite went red that way on 10-22, 10-24, 10-26 and 10-28. A census of the old wait on a Linux KVM suite saw 565 whole lines missing in one block and no partial line, which is logkeeper's shedding rather than QEMU losing bytes. The wait now accepts any `stick_load: line N` with N >= 1500, so it ends once the load has written past that point, which is what the test needs before it presses the power button. The stick's contents remain the test's assertion. The same Linux KVM suite also went red on two amdvi boots that wrote nothing at all for 63 s, independent of this change. They are recorded in issues/two-amdvi-boots-in-a-kvm-suite-wrote-not-one-byte.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0eb2c09 to
a3d97fa
Compare
|
Orchestrator: r2's blocker checked at a3d97fa, a single commit. The false doc comment and the PR body's under-count claim are gone. The new amdvi silent-boot record states only what the run showed and has an exit. The fix's jan-pc runs stand, since only a comment changed. Landing. |
Problem
the_log_lands_on_the_boot_stickwaited on the console for the one exact linestick_load: line 1500. Under the load the console falls behind, and logkeeper then sheds the oldest program lines it holds for the console. When line 1500 was among them, the test stalled with "it never stopped talking and never got there", while the guest was tens of thousands of lines further on. This is how the nightly'skvm / suitewent red on 10-22, 10-24, 10-26 and 10-28 (runs 39745311509, 40075324820, 40291133102, 40661873043).Change
The wait now goes through
await_guestand accepts anystick_load: line Nwith N ≥ 1500. That is what the test needs before it presses the power button, and the stall message is true again. Nothing showed that QEMU dropped this line, so the QEMU console-drop record is unchanged. The branch is one commit on965bb73de.The PR also files
issues/two-amdvi-boots-in-a-kvm-suite-wrote-not-one-byte.mdfor the two unrelated amdvi reds below. They do not fitissues/parallel-tests-red-under-other-suites.md: that suite ran alone on its host. The netcase silent-boot record is the nearest, but its boots printed the firmware's screen clears and these printed nothing.Evidence (https://github.com/ToyOSOrg/evidence/tree/d06821d0cb6e754f1fec16a5921bc4378d9ba600/pr-1107/r2)
cargo test --test toyos-buildat0eb2c09d0on a Linux x86_64 KVM host. Exit 1, 82 of 84 passed, andthe_log_lands_on_the_boot_stickpassed in 18 s.amdvi_selftestandamdvi_firmware_leftboth had boots that printed nothing at all on the console or the UART for 63 s. The control below differs from this head only inside the stick test's wait, and both passed there. Recorded, not investigated.controls/old-wait-census.patch). Full suite: exit 0, 84 of 84.went unshownreport yet; logkeeper prints one only once its backlog falls below half.e4bdb0a5d, at https://github.com/ToyOSOrg/evidence/tree/fab78429d25f1dbdd902d98a7f818987bb81f459/pr-1107/r1.Checks
cargo run -- --ci hostat0eb2c09d0: exit 0, all 105 steps green.a3d97faec(the same test diff minus one doc comment, plus the issue file, on a newer main): exit 0, all 105 steps green (https://github.com/ToyOSOrg/evidence/tree/43ea93ef49205b2fbc5be429669c436112319ba0/pr-1107/r3). The guest runs above still apply, because deleting a comment and rebasing onto issue-only and unrelated commits cannot change this test's behaviour.Risks
🤖 Generated with Claude Code