Repository navigation
Conversation
…me, and this boot's own lease hda_client_stall. The judge wanted two `soundd: resumed` in the job's window, one per stream. On the shared `testcases` boot the job's first stream opens 3 ms after the tone's is removed (5.681 to 5.684 on the T14 run of #638's head), and soundd suspends 20 to 25 ms after a removal, so the first stream joins a running soundd and the window carries one resume: the second stream's, which is the one the job stages. The judge now asks for a resume after the first session's end. The job itself waited a flat 500 ms before closing each stream and a flat 300 ms after it. A stream now plays one more stretch of tone after its last stall and is closed on the callback that ends it, and the second stream opens once soundd's own `inspect` answer reads `suspended`, asked once a period, each wait bounded at 5 s and panicking by name. lan_dhcp_lease. The loop read the address Ubuntu held on the I219 before the flash, pinged it across the reboot, and the judge refused a boot whose lease was another address or whose reply fell outside the boot by the two operating systems' clocks. The bench's router leases ToyOS another address than Ubuntu (192.168.1.48 against .46), so the reply it counted was Ubuntu's, after the reset. The talking boot already tells the host its address: netd answers for the machine's name once it holds a lease, and the loop reads the log served there and pings it. The judge now holds the lease record in netd's own lines to that address and to that ping. With no judge of it left, the ping across the reboot goes: `Ping`, `Reply`, the address and clock-skew reads of `Driver::wire`, four keys of `boot.txt`, `Refusal::Probe`, `bootlog::host_second_inside_this_boot` and its margin. `--nic` still reads the function's MAC, which the judge holds netd's to. `lan_lease_report` printed that ping and judged nothing by it; its boot no longer names the function. Both judges are checked against the T14's own lines: each passes today's capture and reds on it with the resume, the address, the ping or the MAC taken away. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm
…se; three flat waits and a printed stream error are filed Closed, each by the judge no longer resting on what it named: - hda-client-stall-reads-one-resume-where-its-judge-wants-two: the judge asks for the second stream's resume. Its exit is the row passing on the T14 run of this head. - the-benchs-router-leases-toyos-another-address-than-ubuntu: the judge holds the lease to the address this boot answered the host at. Its exit is the row passing on the T14 run of this head. - the-cable-judge-spends-two-premises-nothing-has-measured: no judge compares the two operating systems' clocks or addresses any more, and the reads that fed the comparison are gone. Filed, found beside the task and not fixed: - audio/the-tone-client-waits-a-flat-200-ms-for-its-tail - audio/hda-client-stall-prints-a-stream-error-and-passes - build/lan-hold-holds-two-boots-open-for-a-flat-twenty-seconds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm
… fixture says what its extra keys are Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm
|
Patches and runs behind the body's checks, at Control A:
|
|
Review of Evidence. Growth. Rulings the brief asked for
BLOCKER
NOTE
REMOVE
SEND BACK |
…se fixture that names nobody Answers the review of c154c22 on #684. The stall job asked soundd with a copy of `/system/bin/inspect`'s `ask`, without the frame-size assert `toyos-inspect` asks of a reader. `userland/inspect` is now a library and a binary, as `userland/blockd` is: `inspect::ask` is the one asker, the assert stands beside it, and the reader and the job both call it. No SDK change. The job's answer bound is the reader's 2 s where its copy had 5 s. `Driver::wire` reads the claimed function's IPv4 address again and refuses a function that holds none as `Refusal::Wire`, before anything is written: exit 2, the loop's. c154c22 cut that read with the ping it fed, and a bench whose cable is out would have had both LAN boots flashed and reported red as the boot's. `brief_address` and its test are `main`'s; `Wire` carries the address so a `Wire` without one cannot be built. `lanleasecase` names the function again, so its boot is refused on that bench too. Nothing judges the address: `boot.txt` carries `wire_mac` as before. `lan_dhcp_lease`'s ping arm went: the loop refuses a talking boot whose address answered no ping before any judge is called, so no readback that reaches the judge carries `talk_ping no`, and the ping is `lan_talk`'s. `icmp::wire_is_down`, its arm in `echo` and its test went with the probe they were written for. The one caller left asks an address a stream has just opened from, where a send the host's routing refuses is the host's failing. The lease check's fixture is now the T14's `lantalkcase` readback at c154c22, which carries none of the four keys the old loop wrote. Its MAC and its two resolvers are stand-ins: a locally administered MAC and RFC 5737 addresses. The tree is public and the judge needs a MAC equal on both sides and a resolver list that parses. `lan::LEASE` lost its last reader outside its module and is private. The `lan_hold` issue is `tooling` with an exit condition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm
…lvers The owner's ruling on #684: nothing that identifies his machines or network goes into this repository or onto a pull request. A run's log and a judge's lines are what a pull request quotes, and three of them carried one or the other: the loop's `the claimed function ... MAC ...` line, the lease judge's `[lan] leased ... dns [...]` line on every pass, and its red for a MAC that is not the one the operating system before the boot read, which quoted that MAC. The loop's line now names the interface and the address it holds, which is a private one; the MAC still crosses in `boot.txt`. The judge counts the resolvers, and its red names where both MACs are read instead of quoting one. netd's own records in a boot's log carry both, as before: those are the product's lines and a readback is not committed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm
|
Round 2, at Per finding
The host checks, their controls and the capture: the script's own output
diff --git a/src/metal.rs b/src/metal.rs
index 66bf690e8..88cd8c2b3 100644
--- a/src/metal.rs
+++ b/src/metal.rs
@@ -1058,7 +1058,7 @@ fn brief_address(iface: &str, text: &str) -> Result<std::net::Ipv4Addr, String>
let cidr = line
.split_whitespace()
.nth(2)
- .ok_or_else(|| format!("{iface} holds no IPv4 address: {line:?}"))?;
+ .unwrap_or("0.0.0.0/0");
cidr.split('/')
.next()
.unwrap_or(cidr)Judging the capture at this head wrote six rows into The stall job in a QEMU guest
soundd's records and the judge's verdict, as committed: and with |
|
T14 at
Each judging ended Readbacks and judge logs: |
|
T14 at
Each judging ended Readbacks and judge logs: |
|
Review of Round 1's BLOCKERs
Round 1's NOTEs and REMOVEs are taken, all but the body and the record: the first NOTE below. Evidence. Growth. What identifies the bench. Searched without printing a value: the head's tree, the body with its three recorded edits, and the five comments, for the bench's own MAC and resolvers and for any universally administered MAC, public IPv4 address or email. None. The lease fixture's MAC is locally administered and its resolvers are RFC 5737's. BLOCKERNone. NOTE
REMOVE
LAND AFTER NAMED CHANGES |
Two T14 rows were red on
mainby their judges and not by ToyOS, so every T14 run exited 1. Both judges now judge what their boots stage. Head9e709f7a2, onorigin/mainat6a6c5faa5.The T14
c154c2220, the head before this one (the orchestrator's reading): three boots, eachtoyos-metalexit 0.hda_client_stalljudged exit 0:soundd: suspendedat 7.543, the second stream opened at 7.545 andsoundd: resumedat 7.545, the job exited 0, and noaudio error:line.lan_judged exit 0,4 passed, 0 failed, 2 boot(s):leased 192.168.1.48/24 from 192.168.1.1 in 13326 ms, the address the boot answered for its name at.c154c2220the stall job asks through another asker, the loop reads the claimed function's address before the flash and prints one line differently, andlanleasecasenames the function again. The three boots are owed again and are staged (684-r2/metal/request.txtin the orchestrator's scratchpad); the orchestrator runs the machine and adds the reading.c154c2220boots wrote six,boot.testcases.*andboot.lantalkcase.*: each boot carried a red row onmain, and a boot with a red adds none.boot.testcases.panel_max_usread 6582 there. Thetestcasesboot of Every QEMU ceiling is at most three times what its test takes; wedges end in seconds; two LAN boots ride the talking boot #638's head read 3842, and every other recorded boot records 3608 to 3950 buttestcases-deaf, at 5247. The rows come from the judging of this head's boots, and apanel_max_usoutside that range is said here and not committed.hda_client_stalltestcasesboot the job's first stream opens 3 ms after the tone's is removed (5.681 removed, 5.684 opened, on the run of Every QEMU ceiling is at most three times what its test takes; wedges end in seconds; two LAN boots ride the talking boot #638's head), and soundd suspended 20 to 28 ms after a removal on the six removals the closed issue and that run's capture carry, so the first stream joins a running soundd. The resume the job stages is the second stream's, andclient_stall_on_metalasks for asoundd: resumedafter the first session's end.inspectanswer readssound.stream.state = suspended, bounded at 5 s, each ask by the asker's own 2 s; every bound panics by name.inspectanswer is the one place a client reads its state. The mix loop publishes once a wake and a draining device wakes it once a period, so the job asks once a period, the period read off the same answer.userland/inspectis a library and a binary, asuserland/blockdis.inspect::askis what/system/bin/inspectand the job both call, and theMAX_SNAPSHOT_BYTES == ipc::MAX_FRAME_LENasserttoyos-inspectasks of a reader stands beside it. No SDK change. The test crate takesinspectas a path dependency on a crate of this tree;toyos-inspectwas already there.lan_dhcp_leaselan::on_metalrefused a boot whose lease was another address, or whose reply fell outside the boot by the two operating systems' clocks. The bench's router leases ToyOS another address than Ubuntu (192.168.1.48 against .46 on the run of Every QEMU ceiling is at most three times what its test takes; wedges end in seconds; two LAN boots ride the talking boot #638's head), so the reply the judge counted was Ubuntu's, 39 s after this boot's stop.lan_lease_reportjudges the probe's file on a boot armed with--exit-with-lease, andissues/diagnostics/netds-lease-probe-answers-a-question-its-lines-already-answer.mdhas that probe going because this row reads the lease.talk.txt'stalk_peer). The judge holds netd's lease record to that address. The ping of that address islan_talk's: the loop refuses a boot whose address answered none before any judge is called.Ping,Reply, the clock read ofDriver::wire(date -u +%s),clock_skew,Refusal::Probe, four keys ofboot.txt,Cableand its parser,bootlog::host_second_inside_this_bootwith its margin andrecord_unix_secs, andicmp::wire_is_downwith its arm inechoand its test. That arm read a send the host's routing refused as silence, for a probe asked across a reboot. The one caller ofecholeft asks an address a stream has just opened from, where such a send is the host's failing; either answer refuses the boot asRefusal::Talk.Driver::wirereads the claimed function's IPv4 address and refuses a function that holds none asRefusal::Wire: exit 2, the loop's, with nothing written.brief_addressand its test aremain's. Both LAN boots name the function, so a bench whose cable is out has neither flashed. No judge reads the address;Wirecarries it, so noWireis built without one.lan_lease_reportloses a print. It printed the old ping and judged nothing by it. Its verdict is unchanged, the probe's exit code and report.What the loop and the judge print
Nothing that identifies the owner's machines or network goes into this repository or onto a pull request (his ruling on this pull request), and a run's log and a judge's lines are what a pull request quotes. Three lines carried the T14's MAC or the bench's resolvers; none does at this head, in a commit of its own (
9e709f7a2):boot.txtalone;lan_dhcp_lease's[lan] leased …line counts the resolvers;wire_macinboot.txtand netd's record instead of quoting either.The lease check's fixture is the T14's
lantalkcasereadback atc154c2220with a locally administered MAC and two RFC 5737 addresses standing in for the machine's MAC and its resolvers. netd's own records in a boot's log carry both, as before; a readback is not committed.Issues
Closed:
hda-client-stall-reads-one-resume-where-its-judge-wants-twoandthe-benchs-router-leases-toyos-another-address-than-ubuntu, each of whose exit is its row passing on the T14 run of this head; andthe-cable-judge-spends-two-premises-nothing-has-measured, since no judge compares the two operating systems' clocks or addresses any more. Their one durable line each is atclient_stall_on_metalandlan::on_metal.Filed, found beside the task and not fixed, each
toolingwith an exit condition:issues/audio/the-tone-client-waits-a-flat-200-ms-for-its-tail.md,issues/audio/hda-client-stall-prints-a-stream-error-and-passes.md,issues/build/lan-hold-holds-two-boots-open-for-a-flat-twenty-seconds.md.Checks
The oracle is a recorded real failure: the T14's own lines. The stall check's fixture is the run of #638's head, the lease check's the run of
c154c2220, and<capture>is the readback of #638's head (testcases,lantalkcase,lanleasecase, copied without their images), judged whole. All at9e709f7a2; patches and outputs are in the round's comment.cargo run -- --ci host(Host: 67 step(s), all green)cargo run -- --build-onlycargo test --test toyos-checks metal_audio_judgescargo test --test toyos-checks metal_lease_judged_is_this_boots_owncargo test --lib -- an_interface_with_no_address_is_refused_by_namemain'stests/common/audio.rsundermetal_audio_judgesmain's lease judge and loop undermetal_lease_judged_is_this_boots_ownbrief_addressanswering an address where the interface has none, under its testcargo test --test toyos-build -- --metal --metal-readback <capture> hda_client_stall(PASS hda_client_stall)cargo test --test toyos-build -- --metal --metal-readback <capture> lan_(4 passed, 0 failed, 2 boot(s))git diff 9e709f7a2 origin/main -- src tests userland), the same two commands--metal --metal-readback <dir> hda_client_stallandlan_(staged, nothing judged)the T14's stalled client refused a log it has to pass: soundd resumed 1 time(s), the T14 run's own red.this readback names ["wire_mac"] and a cable is ping_addr, wire_mac and clock_skew together: the fixture is a readback this head's loop wrote, whichmain's reader refuses whole. The T14's two recorded findings are control D's.called `Result::unwrap_err()` on an `Ok` value: 0.0.0.0.FAIL hda_client_stall: soundd resumed 1 time(s), and withFAIL lan_dhcp_leasenamingthis boot leased 192.168.1.48 and the host pinged 192.168.1.46and the reply-39 s apart(3 passed, 1 failed):main's judges on the T14's lines, for facts about the bench.main's judges read as correct and were red on the T14's lines.The stall job in a guest. No QEMU test runs it (audio is judged on the T14), and this change reaches no guest test: no test runs
/system/bin/inspect, whose asker the job now shares. A temporary probe ran the job once on theHeadlessmachine's virtio-sound and was restored:9e709f7a2deferred, which virtio-sound's queue does and the T14's ring does notawait_suspended()not calledno soundd: resumed after the first stream's endLines
git diff --shortstat origin/main...9e709f7a2: 437 insertions, 895 deletions over 25 files. Build system (src/): +45, −563. Harness (tests/common,tests/toyos.rs): +57, −93. Host checks (tests/checks*): +112, −1. Guest binaries (tests/toyos-rust-tests): +73, −25.userland/inspect: +82, −65, the asker moved from its binary to its library. Issues: +68, −148.Unsure
c154c2220carried noaudio error:line under it; that line is filed, not judged.src/metal.rs. The ping across the reboot was the old judge's premise, so it went with it; the alternative was to leave it running on two boots for a line nobody judges.lanleasecasenames the function again. It costs that boot threesshreads, and Ubuntu has to hold a lease on the I219 when the loop asks, as onmain.boot.txtand the log. If a judge should print them after all,9e709f7a2is the commit to revert.🤖 Generated with Claude Code
https://claude.ai/code/session_013UDZQ6fSKw14e4w2TKTRfm