Skip to content

An unchanged ureq and rustls client on a ring fork fetches byte-exact over TLS 1.3 in a guest, trusting the Mozilla roots every image carries with their licence's text - #810

Open
Japabu wants to merge 8 commits into
mainfrom
wt/toyos-tls

Conversation

@Japabu

@Japabu Japabu commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Stage 3 of issues/the-internet-clients-work-unchanged.md, without its metal row: an unchanged ureq 3.4.2 on rustls 0.23.45 client, on a ring fork, builds for x86_64-unknown-toyos and fetches byte-exact over TLS 1.3 in a QEMU guest from a server the harness runs on the host, sends exactly the project's User-Agent, and refuses a wrong name and an untrusted root by name. Every image carries the Mozilla roots at /system/etc/ssl/cert.pem with their licence's text beside them, under a licence gate that reads both.

Head: 88d5c7c0f, origin/main at d6298c83e merged (#800, #802, #803). #801 had not landed when the measurements below were taken. Round 3 changed only judge_trust_roots_of (below); the guest runs are at e3b11331e, the commit before it, since that change is in the host-side licence gate and no guest image reads it. Fork: ToyOSOrg/ring toyos-0.17.14 at 34818c4599e7d6233cf42e80de5cd309190e523c, unchanged this round, named by both lockfiles.

What changed, per decision

The ring fork. Branch toyos-0.17.14 on ToyOSOrg/ring, three commits on upstream's 2723abbca (the commit the package was cut from, per its .cargo_vcs_info.json):

  1. e0626e4e0 imports the published ring-0.17.14.crate byte for byte (SHA-256 a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7, the checksum main's Cargo.lock carried).
  2. 39eff8204, the ruled build-script edit, written for upstream: is_packaged = c_root_dir.join(PREGENERATED).is_dir() replaces the .git test for all three decisions (pregenerated assembly versus perlasm, C asserts in debug, C warnings as errors). Upstream's own tree has no pregenerated/, so its behaviour is unchanged.
  3. 34818c459: "toyos" in LINUX_ABI and target_os = "toyos" in src/rand.rs's getrandom list. The random source is the getrandom 0.2 fork's ToyOS arm, SYS_RANDOM, which The kernel's random bytes come from a ChaCha20 generator keyed from the loader's seed and the CPU's sources, and 17 of the AArch64 guest tests run under HVF #802 now serves from its ChaCha20 generator; every run below is on that kernel.

Pinned in [patch.crates-io] by branch, like every other fork there, with the commit in both lockfiles. With asserts off nothing references __assert_fail.

The trust roots and their licence (src/build.rs, src/licence.rs, NOTICE, licenses/). The owner, asked whether to allow CDLA-Permissive-2.0 for the Mozilla roots, answered "Allow it". So:

  • build::trust_roots() writes webpki-root-certs' roots as PEM with pem 4 (already in the lock through rcgen); build_and_assemble puts them on every ROOT at etc/ssl/cert.pem, unconditionally, and beside them etc/ssl/CDLA-Permissive-2.0.txt, the licence's text, which its section 2.1 asks to travel with the data. The text is committed as licenses/CDLA-Permissive-2.0-webpki-root-certs.txt (the crate's LICENSE, sha256 e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8), and NOTICE has a prose section for it.
  • The gate judges them: judge_trust_roots_of finds build::TRUST_ROOTS_CRATE in the cargo metadata document judge already holds for the build's own workspace (the one whose members holds the root Cargo.toml; the crate is a non-optional dependency of the root package, so any feature set resolves it), with no cargo metadata call of its own, and judges its license as data, the one place the new DATA_ONLY = ["CDLA-Permissive-2.0"] passes, as FONTS_ONLY passes OFL only for a font; and refuses unless the shipped text is that crate's LICENSE, byte for byte. The ruling is scoped as given: CDLA is not in ALLOWED, and no crate an image links passes under it. The gate's font: bool becomes Scope { Code, Font, Data }.
  • issues/the-trust-roots-ship-in-every-image-and-no-licence-gate-reads-them.md is closed (deleted); its rule is in src/licence.rs's header. No citation of it remains (git grep).

The test's roots (tests/toyos.rs). https_fetch stages the build's roots plus its harness's authority as etc/ssl/harness-cert.pem and passes that path in argv. The match on extra_files and its assert are gone.

One C environment (src/build.rs). GuestEnv::new(sysroot, arch) holds CSysroot::cc_env() and cargo_build applies it to every guest build, so build_programs' and TestBuild's copies are gone. The variables are suffixed by the userland triple, so the kernel's and the loader's builds (other triples) read none of them.

ring_kat (tests/toyos-rust-tests/src/bin/ring_kat.rs). Now covers what the shipped roots need too: SHA-384("abc") (FIPS 180-2 D.1); ECDSA P-384 with SHA-384, RFC 6979 A.2.6, "sample"; RSA PKCS#1 v1.5 and RSA-PSS with SHA-256 at 2048 bits, the first passing [mod = 2048] SHA256 vector of NIST CAVP's FIPS 186-3 SigVer15_186-3.rsp and SigVerPSS_186-3.rsp (PSS salt 32 bytes, the length ring verifies). Each signature is also refused with one bit flipped. A digest has nothing to refuse, so SHA-384 gets no flipped-bit case. Where each vector comes from, with the downloads' hashes, is in the controls comment.

ring_kat runs once, in https_fetch (RUST_SKIP). In round 1 it ran twice per QEMU suite: once on the shared boot and once in https_fetch. Both runs were on the same Arch::cpu(accel), qemu64 under TCG and host under KVM, so the second bought nothing. The T14 reason given for the shared run was never measured, and I keep the run inside the fetch for two reasons: it puts the oracle on the boot whose handshake it vouches for, and a filtered cargo test -- https_fetch still carries it. The cost is that the T14's shared boot no longer runs it. The code paths TCG never takes (ADX/BMI2 Montgomery, AES-NI, AVX2) are reached on CI's KVM through -cpu host; that measurement is below, still to come.

doom (userland/doom/build.rs, Cargo.toml). ureq with its rustls feature (ring, webpki roots) replaces rustls-no-provider + rustls-rustcrypto + webpki-roots, and the download sends the project User-Agent. No manifest names rustls-rustcrypto.

Issues.

  • the-build-runs-host-tools-outside-rust-and-qemu.md: the host cc row now also names ring compiled for doom's build script. The toolchain clang row now names every guest crate's C through GuestEnv, ring in https_get and ring_kat among them.
  • a-guest-close-after-a-refused-handshake-can-leave-its-peer-waiting.md: says slirp is not ruled out, since no capture was taken of the guest's side, and names a QEMU filter-dump on the netcase NIC as the measurement that answers it.
  • a-netcase-boot-under-host-load-said-nothing-past-the-firmwares-screen-clears.md: a second occurrence this round, recorded with its load (below).
  • The track's stage 3 text is updated to the present state; its exit (the T14 row) is unchanged.

New dependencies

  • webpki-root-certs 1.0.9 (build): the rustls project's publication of the Mozilla set as whole certificates. webpki-roots carries trust anchors, which no certificate file takes.
  • pem 4 (build, already in the lock through rcgen): writes the PEM. It replaces round 1's base64 and the hand-written encoder.
  • rcgen 0.14 (harness, dev): an authority and IP-SAN leaves per run.
  • rustls (harness, dev, already in the lock): the server.
  • Test crate: ureq, rustls, ring, at the root lock's versions.

Checks of a trust boundary

Independent oracles. Two oracles do not depend on ring:

  • The specifications' published known answers in ring_kat, now RSA PKCS#1 v1.5, RSA-PSS and P-384 too. They run on the boot and CPU of the fetch.
  • The body's digest: the harness computes it with RustCrypto's sha2, the guest with ring.

The server is not an oracle, since it is rustls on ring too. Before the guest, the new vectors were checked against crates.io ring 0.17.14 on the host (aarch64), EXIT=0. In the guest every line passed (https_fetch log).

Negative controls, each a checked patch applied, built, run and reversed by one script, tree clean after (restored: []). The logs and patches are in the controls comment. m1–m5, m7 and m8 ran at e3b11331e, each cargo test --test toyos-build -- https_fetch. g0–g2 ran at 88d5c7c0f (round 3; round 2's run at 216f33b35 gave the same verdicts), each cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree, a test the patch adds that runs licence::judge on the tree.

patch what it breaks verdict
m1-client-trusts-any-certificate .disable_verification(true) EXIT 1: the server named for another address: the client ended Some(0) and was to end 2
m2-client-sends-ureqs-own-user-agent no .user_agent EXIT 1: saw Served { … user_agents: ["ureq/3.4.2"] }
m3-roots-file-holds-the-other-authority stranger's authority staged EXIT 1: the trusted server: the client ended Some(2) and was to end 0
m4-server-flips-one-body-byte byte 200,000 sent EXIT 1: the digest differs
m5-server-speaks-tls12-alone TLS 1.2 only EXIT 1: saw Served { version: Some(TLSv1_2), … }
m7-a-known-answer-one-bit-off RFC 4231 HMAC answer EXIT 1: ring_kat ended Some(101)
m8-rsa-signature-one-bit-off the CAVP SigVer15 signature's first word, last bit EXIT 1: ring_kat ended Some(101), rsa pkcs#1 v1.5 sha-256 2048 cavp SigVer15 does not verify
g0-the-gate-on-this-tree nothing: the runner alone EXIT 0
g1-cdla-not-allowed-as-data DATA_ONLY empty EXIT 101: crate webpki-root-certs 1.0.9, the data of etc/ssl/cert.pem is "CDLA-Permissive-2.0": not allowed: CDLA-Permissive-2.0; pulled in by build::trust_roots
g2-another-licence-text-beside-the-roots licenses/MIT-PhosphorIcons.txt shipped instead EXIT 101: … ships etc/ssl/CDLA-Permissive-2.0.txt beside them, which is not its LICENSE

Round 1's m6 tested the hand-written encoder's round trip (the_trust_roots_read_back_as_the_published_set). Both are gone. What is left of that test is pem's encoding and ureq's parsing, which are not ours. The bytes are unchanged: 181,603 in both rounds' --build-only. The gate's logic also has a host unit test, the_trust_roots_pass_only_with_their_crates_licence_text, covering a matching text, another text, and another licence.

The ruled fork edit, both arms, from round 1, unchanged fork: at toyos-0.17.14 with PERL_EXECUTABLE=/nonexistent/perl the build gave EXIT=0; at e0626e4e0 it gave EXIT=101 running perl.

Gates

Logs are in the comments below, scrubbed of home-directory paths. The full logs are under the orchestrator's tls/r2/logs/ and tls/r3/logs/.

At 88d5c7c0f:

  • cargo run -- --ci host: EXIT=0, 78 step(s), all green; the licence step says 6 exception(s) stand, and nothing else is refused.
  • cargo run -- --build-only: EXIT=0. ROOT has etc/ssl/cert.pem (181,603 bytes) and etc/ssl/CDLA-Permissive-2.0.txt (2,371 bytes).

At e3b11331e:

  • cargo run -- --ci host: EXIT=0, 78 step(s), all green. Load 45.32→54.59 on 14 cores.
  • cargo test --no-fail-fast (whole guest suite): EXIT=0. toyos-build gave 42 passed, 42 total, https_fetch among them, and toyos-checks 39 passed (suite_split holds ring_kat's move to RUST_SKIP). uptime before: 55.66 55.89 66.50; after: 86.43 65.59 68.97.
  • cargo test --test toyos-build -- https_fetch --nocapture: EXIT=0, PASS https_fetch (23s), every ring_kat line and the three https_get lines in the log. Load 42.53→47.98.
  • cargo run -- --build-only: EXIT=0. ROOT has etc/ssl/cert.pem (181,603 bytes) and etc/ssl/CDLA-Permissive-2.0.txt (2,371 bytes).

CI's KVM guest / suite

The run where ring takes its ADX/BMI2 Montgomery, AES-NI and AVX2 paths, which TCG's qemu64 never runs, and on which the new RSA and P-384 answers are the only oracle. The branch lands only once it is green.

  • Head: 88d5c7c0f
  • Run: https://github.com/ToyOSOrg/ToyOS/actions/runs/37968260146 (job guest / suite 113949123414, under KVM)
  • Exit and result line: success; PASS https_fetch (6s), which runs ring_kat (SHA-384, ECDSA P-384, RSA PKCS#1 v1.5 and PSS known answers) and the HTTPS fetch on the KVM CPU; [ci] the suite: test result: ok. 42 passed, 42 total; [ci] Guest: 5 step(s), all green
  • Log: read by the orchestrator from the job log (a passing test keeps no guest console there, so the individual ring_kat lines are not in it; the test passes only if every answer holds). host: 79 steps all green.

Reds in round 2, recorded.

  • The first whole guest suite, at 2f7b0eada, load 58.49→84.83: 41 of 42, red on virt_mask_windows (STALLED: waiting for the boot's last word). Its console ends at spawn: /system/bin/test_rs_counters_read, the signature issues/a-counters-read-under-host-load-can-go-silent-for-15-s.md records. It is an AArch64 virtsmpcase boot, and this branch changes nothing that boot's kernel, case or binaries are built from beyond the C variables, which are suffixed by the toyos triple.
  • https_fetch alone at 216f33b35, load 89→99, beside this tree's own --ci host: Boot timed out waiting for ===READY===; the console carried: nothing at all. Its 16550 file holds the same 58 bytes of firmware escapes as the netcase issue's first case, so I added it to that issue.
  • --ci host at 2f7b0eada: red on the licence step alone. NOTICE's new section was headed by a ROOT path, which the gate's git ls-files glob refused; fixed in 216f33b35.
  • --ci host at 216f33b35: void. The machine's disk was full, and all three red steps say No space left on device.

Why a QEMU guest test

https_fetch's behaviour is a list of things with no host build and no type that holds them:

  • ring's ToyOS build and assembly
  • getrandom reaching SYS_RANDOM
  • the guest's wall clock against certificate validity
  • std's sockets through netstack

The T14 is the cheaper tier and the stage's exit, but its row needs a server the harness runs on the bench, which the brief puts outside this stage. Until then QEMU is the only tier that reaches the fetch. ring_kat alone is reachable by a host test only for the host's ring, never the guest's build of it.

Net lines

git diff --shortstat origin/main...88d5c7c0f: 19 files, +1502 −437.

  • Lockfiles: +552 −367.
  • Production: src/build.rs +38 −11 (roots writer, their ROOT entries, GuestEnv's C environment), src/licence.rs +128 −20 (the roots' judgement, Scope, and their unit tests), Cargo.toml +9, doom +4 −16.
  • Data: licenses/CDLA-…txt +61, NOTICE +14.
  • Tests: tests/common/https.rs +164, https_get.rs +77, ring_kat.rs +251, tests/toyos.rs +98.
  • Issues: +97 −23.

Unsure

  • The second ring_kat run. I chose the fetch's run over the shared boot's. If the T14 is wanted, it is one line back into DRIVEN_AND_SHARED.
  • What is not run: AArch64 (aarch64-unknown-toyos builds ring through the same arms, but no guest ran it), the T14, and CI's KVM (its section above).
  • The lost FIN is still not reduced. Slirp is not ruled out; the issue says so.

🤖 Generated with Claude Code

https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C

Japabu and others added 3 commits October 9, 2026 16:52
…n a guest

ring is ToyOSOrg/ring's toyos-0.17.14, pinned by the lock: the published
0.17.14 package imported byte for byte, a build script that tells a packaged
tree from a source tree by `pregenerated/` instead of `.git` (so as a git
dependency it uses the package's assembly, runs no perl, and leaves C
asserts and warnings-as-errors off, so nothing calls `__assert_fail`), and
`toyos` in its Linux-ABI and getrandom lists. The root workspace and the
guest test crate both patch it; the test crate also takes the getrandom 0.2
fork, which reaches SYS_RANDOM.

The build writes webpki-root-certs' Mozilla roots to every ROOT as
/system/etc/ssl/cert.pem (build::TRUST_ROOTS). A test image stages that file
whole, the build's roots with its harness's authority after them, and the
build refuses one that does not start with its own.

A test crate's C is compiled by the toolchain's clang against libc's
sysroot, as a program's is: TestBuild hands cargo the cc crate's variables.

https_fetch boots tests/netcase with three rustls servers on the host, each
under an authority made for the run: https_get, ureq 3 on rustls 0.23 with
the roots file and the project's User-Agent, fetches 384 KiB over TLS 1.3
and its ring SHA-256 matches the harness's sha2 one; it refuses a
certificate for another address and one from an authority the file does not
hold, by name. ring_kat runs on the shared boot: ring against RFC and NIST
known answers.

doom's build script downloads with ureq on ring and the project's
User-Agent; nothing names rustls-rustcrypto.

Filed: a refused connection's close that never reached the host's peer, and
the roots being data no licence gate reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
…ody reads

clippy denies the unread field.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
…etcase boot is filed

The handshake is rustls on ring at both ends, so it alone would pass a ring
wrong at both; ring's known answers are the oracle, and ring picks its code
by the CPU's features, so they run on the same guest CPU as the fetch.
ring_kat's shared run stays the T14's.

The whole suite went red once on netstack_socket_churn: the firmware cleared
the screen and said nothing more for 487 s under a load average near 90, and
the test was green alone. Filed with the load, as a red under load is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
@Japabu

Japabu commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

The ring fork, ToyOSOrg/ring toyos-0.17.14 at 34818c4599e7d6233cf42e80de5cd309190e523c.

git log --oneline 2723abbca..toyos-0.17.14:

34818c459 Add ToyOS (`target_os = "toyos"`)
39eff8204 build.rs: tell a packaged tree from a source tree by `pregenerated/`, not `.git`
e0626e4e0 Import the published ring 0.17.14 package

The import against the crate, diff -r of the tree at e0626e4e0 (less .git) and the extracted ring-0.17.14.crate: empty. git diff --stat 2723abbca e0626e4e0 | tail -1:

 257 files changed, 153745 insertions(+), 27873 deletions(-)

The two edits, whole (git diff e0626e4e0 34818c459):

diff --git a/build.rs b/build.rs
index 9843ad8aa..ec69e41c9 100644
--- a/build.rs
+++ b/build.rs
@@ -254,6 +254,7 @@ const LINUX_ABI: &[&str] = &[
     "linux",
     "redox",
     "solaris",
+    "toyos",
 ];
 
 const WIN32N: &str = "win32n";
@@ -310,16 +311,21 @@ fn ring_build_rs_main(c_root_dir: &Path, core_name_and_version: &str) {
     let endian = env::var("CARGO_CFG_TARGET_ENDIAN").unwrap();
     let is_little_endian = endian == "little";
 
-    let is_git = fs::metadata(c_root_dir.join(".git")).is_ok();
+    // `pregenerated/` is made by `mk/package.sh` and is never committed, so it
+    // exists exactly in a packaged tree. A packaged tree may still have a
+    // `.git` of its own, e.g. when it is consumed as a Cargo `git` dependency
+    // from a repository that commits the package's contents, so `.git` does
+    // not tell the two cases apart.
+    let is_packaged = c_root_dir.join(PREGENERATED).is_dir();
 
     // Published builds are always built in release mode.
-    let is_debug = is_git && env::var("DEBUG").unwrap() != "false";
+    let is_debug = !is_packaged && env::var("DEBUG").unwrap() != "false";
 
     // During local development, force warnings in non-Rust code to be treated
     // as errors. Since warnings are highly compiler-dependent and compilers
     // don't maintain backward compatibility w.r.t. which warnings they issue,
     // don't do this for packaged builds.
-    let force_warnings_into_errors = is_git;
+    let force_warnings_into_errors = !is_packaged;
 
     let target = Target {
         arch,
@@ -337,15 +343,15 @@ fn ring_build_rs_main(c_root_dir: &Path, core_name_and_version: &str) {
         None
     };
 
-    // If `.git` exists then assume this is the "local hacking" case where
-    // we want to make it easy to build *ring* using `cargo build`/`cargo test`
-    // without a prerequisite `package` step, at the cost of needing additional
-    // tools like `Perl` and/or `nasm`.
+    // If `pregenerated/` doesn't exist then assume this is the "local hacking"
+    // case where we want to make it easy to build *ring* using `cargo build`/
+    // `cargo test` without a prerequisite `package` step, at the cost of
+    // needing additional tools like `Perl` and/or `nasm`.
     //
-    // If `.git` doesn't exist then assume that this is a packaged build where
+    // If `pregenerated/` exists then assume that this is a packaged build where
     // we want to optimize for minimizing the build tools required: No Perl,
     // no nasm, etc.
-    let generated_dir = if !is_git {
+    let generated_dir = if is_packaged {
         c_root_dir.join(PREGENERATED)
     } else {
         generate_sources_and_preassemble(
diff --git a/src/rand.rs b/src/rand.rs
index a451c8f6a..5580447fb 100644
--- a/src/rand.rs
+++ b/src/rand.rs
@@ -139,6 +139,7 @@ impl crate::sealed::Sealed for SystemRandom {}
     target_os = "openbsd",
     target_os = "redox",
     target_os = "solaris",
+    target_os = "toyos",
     target_os = "vita",
     target_os = "windows",
     all(

The edit as a git dependency with no perl, a scratch crate on the host (ring-fork-as-git-dep-noperl-compact.log); the checkout cargo built from has a .git (ls -a lists it):

[package]
name = "gitdep"
version = "0.1.0"
edition = "2021"
[dependencies]
ring = { git = "file://<dev>/forks/ring", branch = "toyos-0.17.14" }
[workspace]
--- PERL_EXECUTABLE=/nonexistent/perl cargo run (fresh target dir)
   Compiling shlex v2.0.1
   Compiling libc v0.2.190
   Compiling find-msvc-tools v0.1.14
   Compiling cfg-if v1.0.5
   Compiling untrusted v0.9.0
   Compiling cc v1.6.0
   Compiling ring v0.17.14 (file://<dev>/forks/ring?branch=toyos-0.17.14#34818c45)
   Compiling getrandom v0.2.17
   Compiling gitdep v0.1.0 (<scratch>/tls/gitdep)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.07s
     Running `target2/debug/gitdep`
sha256(abc) ok
EXIT=0
--- the checkout cargo built from:
.
..
.cargo-ok
.cargo_vcs_info.json

The control: the import alone (e0626e4e0) as the same dependency (ring-import-only-as-git-dep-noperl.log):

    Updating git repository `file://<dev>/forks/ring`
    Updating crates.io index
     Locking 19 packages to latest compatible versions
   Compiling shlex v2.0.1
   Compiling libc v0.2.190
   Compiling find-msvc-tools v0.1.14
   Compiling cfg-if v1.0.5
   Compiling untrusted v0.9.0
   Compiling cc v1.6.0
   Compiling getrandom v0.2.17
   Compiling ring v0.17.14 (file://<dev>/forks/ring?rev=e0626e4e087a43bfb91fa5b7af53be8442077963#e0626e4e)
error: failed to run custom build command for `ring v0.17.14 (file://<dev>/forks/ring?rev=e0626e4e087a43bfb91fa5b7af53be8442077963#e0626e4e)`

Caused by:
  process didn't exit successfully: `<scratch>/tls/gitdep-ctl/target/debug/build/ring-e9b88ce2ff10da31/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=CARGO_MANIFEST_DIR
  cargo:rerun-if-env-changed=CARGO_PKG_NAME
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_MAJOR
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_MINOR
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_PATCH
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_PRE
  cargo:rerun-if-env-changed=CARGO_MANIFEST_LINKS
  cargo:rerun-if-env-changed=RING_PREGENERATE_ASM
  cargo:rerun-if-env-changed=OUT_DIR
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_ARCH
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_ENV
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_ENDIAN
  cargo:rerun-if-env-changed=DEBUG
  cargo:rerun-if-env-changed=PERL_EXECUTABLE

  --- stderr
  running "/nonexistent/perl" "/~/.cargo/git/checkouts/ring-cfa937ffb30bf034/e0626e4/crypto/chacha/asm/chacha-armv8.pl" "ios64" "/<scratch>/tls/gitdep-ctl/target/debug/build/ring-057cb3f7a7442306/out/chacha-armv8-ios64.S"

  thread 'main' (221119813) panicked at ~/.cargo/git/checkouts/ring-cfa937ffb30bf034/e0626e4/build.rs:648:9:
  failed to execute ["/nonexistent/perl" "/~/.cargo/git/checkouts/ring-cfa937ffb30bf034/e0626e4/crypto/chacha/asm/chacha-armv8.pl" "ios64" "/<scratch>/tls/gitdep-ctl/target/debug/build/ring-057cb3f7a7442306/out/chacha-armv8-ios64.S"]: No such file or directory (os error 2)
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

@Japabu

Japabu commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

Negative controls at the head, c86a74113. Each log is the whole of one mutate.sh run: the head, the patch as applied (git diff), the command, its output, MUTANT_EXIT, and git status --porcelain after the patch was reversed (restored: []). The same seven were first run at d63234cb9 (m7 at 820becf43) with the same verdicts; one first m2 there took its const out of use and failed to compile, which is not counted. The runner (a scratch script, not in the tree):

#!/bin/sh
# usage: mutate.sh <patch> <log> -- <command...>: apply, show it builds and runs, record the exit, restore.
W=<dev>/toyos-tls
patch=$1; log=$2; shift 3
cd $W || exit 9
[ -z "$(git status --porcelain --ignore-submodules=none)" ] || { echo "tree not clean" > $log; exit 9; }
git apply --check "$patch" && git apply "$patch" || { echo "patch does not apply" > $log; exit 9; }
{ echo "head: $(git rev-parse HEAD)"; echo "patch: $(basename $patch)"; git diff; echo "--- run: $*"; } > $log
"$@" >> $log 2>&1; code=$?
echo "MUTANT_EXIT=$code" >> $log
git apply -R "$patch"
echo "restored: [$(git status --porcelain --ignore-submodules=none)]" >> $log
control-m1-client-trusts-any-certificate.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m1-client-trusts-any-certificate.patch
diff --git a/tests/toyos-rust-tests/src/bin/https_get.rs b/tests/toyos-rust-tests/src/bin/https_get.rs
index e72b78dde..74540444b 100644
--- a/tests/toyos-rust-tests/src/bin/https_get.rs
+++ b/tests/toyos-rust-tests/src/bin/https_get.rs
@@ -27,7 +27,7 @@ fn main() -> ExitCode {
             _ => panic!("{roots} holds a PEM block that is not a certificate"),
         })
         .collect();
-    let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).build();
+    let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).disable_verification(true).build();
     let agent = ureq::Agent::config_builder().user_agent(USER_AGENT).tls_config(tls).build().new_agent();
 
     let response = match agent.get(url).call() {
--- run: cargo test --test toyos-build -- https_fetch
    Finished `test` profile [optimized + debuginfo] target(s) in 1.18s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:47:44 running 1 tests, 12 wide

15:47:44   RUN   https_fetch
15:47:44   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:47:51   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (6s)
15:47:51   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:47:55   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (4s)
15:47:55   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:48:01   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (6s)
15:48:25 FAIL https_fetch: the server named for another address: the client ended Some(0) and was to end 2 saying "https_get: refused not-valid-for-name":
https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5

15:48:25   FAIL  https_fetch  (24s)
15:48:25   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:48:25 host: fastest boot 20928 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:48:25 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:48:25 failures:
15:48:25     https_fetch: the server named for another address: the client ended Some(0) and was to end 2 saying "https_get: refused not-valid-for-name":

15:48:25 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (40.5s; workers: 17s building, 24s testing)
15:48:25 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-39232-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m2-client-sends-ureqs-own-user-agent.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m2-client-sends-ureqs-own-user-agent.patch
diff --git a/tests/toyos-rust-tests/src/bin/https_get.rs b/tests/toyos-rust-tests/src/bin/https_get.rs
index e72b78dde..ffde9d790 100644
--- a/tests/toyos-rust-tests/src/bin/https_get.rs
+++ b/tests/toyos-rust-tests/src/bin/https_get.rs
@@ -28,7 +28,8 @@ fn main() -> ExitCode {
         })
         .collect();
     let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).build();
-    let agent = ureq::Agent::config_builder().user_agent(USER_AGENT).tls_config(tls).build().new_agent();
+    let _ = USER_AGENT;
+    let agent = ureq::Agent::config_builder().tls_config(tls).build().new_agent();
 
     let response = match agent.get(url).call() {
         Ok(response) => response,
--- run: cargo test --test toyos-build -- https_fetch
    Finished `test` profile [optimized + debuginfo] target(s) in 0.78s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:48:27 running 1 tests, 12 wide

15:48:27   RUN   https_fetch
15:48:27   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:48:33   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (6s)
15:48:33   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:48:39   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (6s)
15:48:39   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:48:49   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (10s)
15:49:03 FAIL https_fetch: the trusted server saw Served { version: Some(TLSv1_3), path: "/body", user_agents: ["ureq/3.4.2"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"
15:49:03   FAIL  https_fetch  (14s)
15:49:03   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:49:03 host: fastest boot 12058 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:49:03 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:49:03 failures:
15:49:03     https_fetch: the trusted server saw Served { version: Some(TLSv1_3), path: "/body", user_agents: ["ureq/3.4.2"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"

15:49:03 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (35.7s; workers: 21s building, 14s testing)
15:49:03 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-46743-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m3-roots-file-holds-the-other-authority.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m3-roots-file-holds-the-other-authority.patch
diff --git a/tests/toyos.rs b/tests/toyos.rs
index d3a2957de..e6b0dcabe 100644
--- a/tests/toyos.rs
+++ b/tests/toyos.rs
@@ -3100,7 +3100,7 @@ fn https_fetch() -> Result<(), String> {
     let untrusted = Server::start(stranger.leaf(host), body)?;
 
     let mut roots = toyos_build::build::trust_roots();
-    roots.extend_from_slice(trusted.pem().as_bytes());
+    roots.extend_from_slice(stranger.pem().as_bytes());
     let crate_path = compile::repo_root().join("tests/toyos-rust-tests");
     let bins = [JOB, KAT].map(|name| (name.to_string(), qemu::build_toyos_bin(qemu::SUITE_ARCH, &crate_path, name)));
     let options = BootOptions {
--- run: cargo test --test toyos-build -- https_fetch
    Blocking waiting for file lock on package cache
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 17.63s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:52:37 running 1 tests, 12 wide

15:52:37   RUN   https_fetch
15:52:37   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:52:42   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (5s)
15:52:42   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:52:47   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (5s)
15:52:47   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:52:53   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (6s)
15:53:12 FAIL https_fetch: the trusted server: the client ended Some(2) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":
https_get: refused unknown-issuer

15:53:12   FAIL  https_fetch  (19s)
15:53:12   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:53:12 host: fastest boot 17445 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:53:12 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:53:12 failures:
15:53:12     https_fetch: the trusted server: the client ended Some(2) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":

15:53:12 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (35.2s; workers: 16s building, 19s testing)
15:53:12 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-806-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m4-server-flips-one-body-byte.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m4-server-flips-one-body-byte.patch
diff --git a/tests/common/https.rs b/tests/common/https.rs
index 234fa7f7a..4c26d1aef 100644
--- a/tests/common/https.rs
+++ b/tests/common/https.rs
@@ -154,7 +154,9 @@ fn serve(config: &Arc<rustls::ServerConfig>, mut tcp: TcpStream, body: &[u8]) ->
     drop(request);
     let head = format!("HTTP/1.1 200 OK\r\nContent-Length: {}\r\nConnection: close\r\n\r\n", body.len());
     stream.write_all(head.as_bytes()).expect("the response's head");
-    stream.write_all(body).expect("the response's body");
+    let mut body = body.to_vec();
+    body[200_000] ^= 1;
+    stream.write_all(&body).expect("the response's body");
     stream.flush().expect("the response");
     conn.send_close_notify();
     while conn.wants_write() {
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 10.19s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:49:15 running 1 tests, 12 wide

15:49:15   RUN   https_fetch
15:49:15   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:49:23   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (8s)
15:49:23   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:49:31   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (8s)
15:49:31   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:49:44   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (13s)
15:50:13 FAIL https_fetch: the trusted server: the client ended Some(0) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":
https_get: ok bytes=393216 sha256=270c2e705cba2975810fb189e5454d60f9c40ab9555fd54703b4d5ba2939ec52

15:50:13   FAIL  https_fetch  (29s)
15:50:13   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:50:13 host: fastest boot 26283 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:50:13 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:50:13 failures:
15:50:13     https_fetch: the trusted server: the client ended Some(0) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":

15:50:13 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (57.3s; workers: 28s building, 29s testing)
15:50:13 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-59722-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m5-server-speaks-tls12-alone.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m5-server-speaks-tls12-alone.patch
diff --git a/tests/common/https.rs b/tests/common/https.rs
index 234fa7f7a..2911431da 100644
--- a/tests/common/https.rs
+++ b/tests/common/https.rs
@@ -89,7 +89,7 @@ impl Server {
     pub fn start(cert: (CertificateDer<'static>, PrivateKeyDer<'static>), body: Arc<Vec<u8>>) -> Result<Self, String> {
         let (chain, key) = cert;
         let config = rustls::ServerConfig::builder_with_provider(Arc::new(rustls::crypto::ring::default_provider()))
-            .with_safe_default_protocol_versions()
+            .with_protocol_versions(&[&rustls::version::TLS12])
             .and_then(|b| b.with_no_client_auth().with_single_cert(vec![chain], key))
             .map_err(|e| format!("the HTTPS server's configuration: {e}"))?;
         let config = Arc::new(config);
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 11.88s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:50:27 running 1 tests, 12 wide

15:50:27   RUN   https_fetch
15:50:27   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:50:32   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (5s)
15:50:32   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:50:38   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (6s)
15:50:38   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:50:47   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (9s)
15:51:05 FAIL https_fetch: the trusted server saw Served { version: Some(TLSv1_2), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"
15:51:05   FAIL  https_fetch  (18s)
15:51:05   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:51:05 host: fastest boot 15318 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:51:05 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:51:05 failures:
15:51:05     https_fetch: the trusted server saw Served { version: Some(TLSv1_2), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"

15:51:05 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (38.0s; workers: 20s building, 18s testing)
15:51:05 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-72683-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m6-roots-writer-breaks-no-line.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m6-roots-writer-breaks-no-line.patch
diff --git a/src/build.rs b/src/build.rs
index 0e6586d63..2b69c0b09 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -724,7 +724,7 @@ pub fn trust_roots() -> Vec<u8> {
         let body = base64::engine::general_purpose::STANDARD.encode(cert.as_ref());
         for line in body.as_bytes().chunks(64) {
             pem.push_str(std::str::from_utf8(line).expect("base64 is ASCII"));
-            pem.push('\n');
+            pem.push(' ');
         }
         pem.push_str("-----END CERTIFICATE-----\n");
     }
--- run: cargo test --lib -p toyos-build the_trust_roots
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 11.69s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-2ab32495b7265031)

running 1 test
test build::tests::the_trust_roots_read_back_as_the_published_set ... FAILED

failures:

---- build::tests::the_trust_roots_read_back_as_the_published_set stdout ----

thread 'build::tests::the_trust_roots_read_back_as_the_published_set' (225090049) panicked at src/build.rs:2135:36:
every block of the roots file parses: Pem(MissingSectionEnd { end_marker: [67, 69, 82, 84, 73, 70, 73, 67, 65, 84, 69] })
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    build::tests::the_trust_roots_read_back_as_the_published_set

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p toyos-build --lib`
MUTANT_EXIT=101
restored: []
control-m7-a-known-answer-one-bit-off.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
patch: m7-a-known-answer-one-bit-off.patch
diff --git a/tests/toyos-rust-tests/src/bin/ring_kat.rs b/tests/toyos-rust-tests/src/bin/ring_kat.rs
index bcbeb8c4d..36d386265 100644
--- a/tests/toyos-rust-tests/src/bin/ring_kat.rs
+++ b/tests/toyos-rust-tests/src/bin/ring_kat.rs
@@ -32,7 +32,7 @@ fn hmac_sha256() {
     // RFC 4231, test case 2.
     let key = hmac::Key::new(hmac::HMAC_SHA256, b"Jefe");
     check("hmac-sha256 rfc4231 case 2", hmac::sign(&key, b"what do ya want for nothing?").as_ref(),
-        "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843");
+        "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3842");
 }
 
 fn x25519() {
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 6.28s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:51:13 running 1 tests, 12 wide

15:51:13   RUN   https_fetch
15:51:13   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:51:18   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (5s)
15:51:18   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:51:23   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (5s)
15:51:23   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
15:51:32   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (9s)
15:51:56 FAIL https_fetch: ring_kat ended Some(101) (None):
ring_kat: sha256(abc) ok
ring_kat: sha512(abc) ok
ring_kat: sha256(a * 1000000) ok

thread 'main' (1) panicked at src/bin/ring_kat.rs:16:5:
assertion `left == right` failed: hmac-sha256 rfc4231 case 2
  left: [91, 220, 193, 70, 191, 96, 117, 78, 106, 4, 36, 38, 8, 149, 117, 199, 90, 0, 63, 8, 157, 39, 57, 131, 157, 236, 88, 185, 100, 236, 56, 67]
 right: [91, 220, 193, 70, 191, 96, 117, 78, 106, 4, 36, 38, 8, 149, 117, 199, 90, 0, 63, 8, 157, 39, 57, 131, 157, 236, 88, 185, 100, 236, 56, 66]
stack backtrace:
   0:      0x100000c7780 - _Unwind_Backtrace
   1:      0x100000b25c3 - <<std[74ee82b21fc1507c]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[73b405bef30eeff1]::fmt::Display>::fmt
   2:      0x100000cb7d7 - core[73b405bef30eeff1]::fmt::write
   3:      0x100000b5dbb - <std[74ee82b21fc1507c]::sys::stdio::toyos::Stderr as core[73b405bef30eeff1]::io::write::Write>::write_fmt
   4:      0x100000993a3 - std[74ee82b21fc1507c]::panicking::default_hook::{closure#0}
   5:      0x100000ad5ee - std[74ee82b21fc1507c]::panicking::default_hook
   6:      0x100000ad7a9 - std[74ee82b21fc1507c]::panicking::panic_with_hook
   7:      0x1000009945d - std[74ee82b21fc1507c]::panicking::panic_handler::{closure#0}
   8:      0x10000091b59 - std[74ee82b21fc1507c]::sys::backtrace::__rust_end_short_backtrace::<std[74ee82b21fc1507c]::panicking::panic_handler::{closure#0}, !>
   9:      0x10000099bc8 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
  10:      0x100000cbefb - core[73b405bef30eeff1]::panicking::panic_fmt
  11:      0x100000cbe6f - core[73b405bef30eeff1]::panicking::assert_failed_inner
  12:      0x1000004d14f - core[73b405bef30eeff1]::panicking::assert_failed::<&[u8], &[u8]>
  13:      0x1000004e946 - ring_kat[26b3dfa812e25309]::check
  14:      0x1000004dc7d - ring_kat[26b3dfa812e25309]::main
  15:      0x1000004d7b6 - std[74ee82b21fc1507c]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  16:      0x1000004d160 - std[74ee82b21fc1507c]::rt::lang_start::<()>::{closure#0}
  17:      0x100000ad036 - std[74ee82b21fc1507c]::rt::lang_start_internal
  18:      0x1000004f291 - main
  19:      0x100000b1123 - std[74ee82b21fc1507c]::sys::pal::toyos::start_rust
  20:      0x10000086b22 - _start

15:51:56   FAIL  https_fetch  (24s)
15:51:56   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:51:56 host: fastest boot 21606 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:51:56 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:51:56 failures:
15:51:56     https_fetch: ring_kat ended Some(101) (None):

15:51:56 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (43.6s; workers: 20s building, 24s testing)
15:51:56 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-82761-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

https_fetch at c86a74113, cargo test --test toyos-build -- https_fetch --nocapture, the whole log (guest-https-fetch-6.log): ring_kat's answers, then the fetch, its hash and the two refusals, and EXIT=0.

guest-https-fetch-6.log
head: c86a74113b35630f7ee9f1a32517719eb919abcd
    Finished `test` profile [optimized + debuginfo] target(s) in 0.37s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:46:05 running 1 tests, 12 wide

15:46:05   RUN   https_fetch
15:46:05   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.07s
15:46:09   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (4s)
15:46:09   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.05s
15:46:13   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (3s)
15:46:13   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.77s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.44s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.27s
15:46:17 root: adding 'bin/diskserver' (753712 bytes)
15:46:17 root: adding 'bin/fileserver' (1464040 bytes)
15:46:17 root: adding 'bin/logkeeper' (910696 bytes)
15:46:17 root: adding 'bin/netstack' (1057912 bytes)
15:46:17 root: adding 'bin/supervisor' (1299544 bytes)
15:46:17 root: adding 'bin/test-runner' (700240 bytes)
15:46:17 root: adding 'bin/test_rs_https_get' (3515672 bytes)
15:46:17 root: adding 'bin/test_rs_ring_kat' (1039392 bytes)
15:46:17 root: adding 'etc/os-release' (287 bytes)
15:46:17 root: adding 'etc/ssl/cert.pem' (182214 bytes)
15:46:17 root: adding 'etc/system.manifest' (518 bytes)
15:46:17   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (4s)
15:46:17 [qemu 0] Launching QEMU...
15:46:28 [serial 0] [--.--- cpu0 kernel] black box: 0x8000000 is this boot's, 16344 bytes for the next boot's loader
15:46:28 [serial 0] [--.--- cpu0 kernel] serial: 16550 loopback read 0xae (present)
15:46:28 [serial 0] [--.--- cpu0 kernel] PAT: IA32_PAT=0x0007040100070406, entry 4 = WC
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: memory map 0x7c3f9018+0xc30, kernel 0x7ae00000+0xd19000, stack image+0x519000+0x800000
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: kernel elf 0x7cf0a018+0x2581b0, rsdp 0x7f77e014, boot pml4 0x7c3fc000
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: gop 0x0+0x0 0x0 stride 0 format 0
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: boot partition present=1 lba 264192 +69632 blocks guid [33, 7c, 2c, f6, 80, d9, f5, 4c, 94, 18, 5e, 09, b0, 17, 18, 03]
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: log partition guid [63, 2c, 21, 1f, 01, 24, 5f, 49, bc, 70, b3, fe, 48, 53, cc, 49]
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: cmdline 0x7d163c98+68
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: root=b0e64185d029ee7f5507b772a04d75ce
15:46:28 [serial 0] [--.--- cpu0 kernel] boot: slot A, the one the slot table marks
15:46:28 [serial 0] [--.--- cpu0 kernel] pmm: the firmware map calls 4288393216 bytes usable in 114 entries; managed=4234149888 withheld=25165824 unaligned=29077504, and the three sum to it; frames=2019 reserved_frames=12 base=0x200000 span=3071
15:46:28 [serial 0] [--.--- cpu0 kernel] paging: the direct map covers 0x0..0x180000000
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: APIC at 0x7f778000 len=128 rev=3 oem="BOCHS" checksummed
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: FACP at 0x7f779000 len=244 rev=3 oem="BOCHS" checksummed
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0x7f777000 len=56 rev=1 oem="BOCHS" checksummed
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: MCFG at 0x7f776000 len=60 rev=1 oem="BOCHS" checksummed
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: DMAR at 0x7f775000 len=144 rev=1 oem="BOCHS" checksummed
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0x7f77e014
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: MADT cpus=[0, 1]
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: reset register SystemIO 0xcf9 <- 0x0f
15:46:28 [serial 0] [--.--- cpu0 kernel] LAPIC: x2APIC enabled (ID 0)
15:46:28 [serial 0] [--.--- cpu0 kernel] control_regs: cpu0 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
15:46:28 [serial 0] [--.--- cpu0 kernel] idt: 256 vectors, 36 declared, 220 unclaimed, table at 0xffff80007afdf860 limit 0xfff
15:46:28 [serial 0] [--.--- cpu0 kernel] control_regs: no performance request is declared: no HWP (CPUID.6:EAX[7])
15:46:28 [serial 0] [--.--- cpu0 kernel] fpu: cpu0 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
15:46:28 [serial 0] [--.--- cpu0 kernel] percpu: BSP cpu_id=0 lapic_id=0
15:46:28 [serial 0] [--.--- cpu0 kernel] mmio: 0xfec00000+0x20 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [--.--- cpu0 kernel] ioapic: id=0 at 0xfec00000 ver=0x20 gsi 0..23 masked 24/24
15:46:28 [serial 0] [--.--- cpu0 kernel] ioapic: iso bus:irq->gsi [0:0->2 edge/high, 0:5->5 level/high, 0:9->9 level/high, 0:10->10 level/high, 0:11->11 level/high]
15:46:28 [serial 0] [--.--- cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
15:46:28 [serial 0] [--.--- cpu0 kernel] symbols: loaded 6214 kernel symbols
15:46:28 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0xfed00000
15:46:28 [serial 0] [--.--- cpu0 kernel] mmio: 0xfed00000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [--.--- cpu0 kernel] clock: HPET at 0xfed00000 enabled, period=10000000fs, counter reads 1700, calibrating over 5000000 ticks
15:46:28 [serial 0] [ 8.482 cpu0 kernel] TSC: 999MHz (period=1000680fs, calibrated over 50ms)
15:46:28 [serial 0] [ 8.483 cpu0 kernel] clock: TSC measured 999320462Hz against the HPET; CPUID leaves 15H and 16H stating no frequency, so nothing independent confirms it
15:46:28 [serial 0] [ 8.483 cpu0 kernel] ACPI: the FADT puts the RTC century register at CMOS 0x32
15:46:28 [serial 0] [ 8.484 cpu0 kernel] clock: the RTC reads 2026-10-09 15:46:26 UTC
15:46:28 [serial 0] [ 8.494 cpu0 kernel] LAPIC timer: 10029133 ticks/10ms, so 1002913300Hz
15:46:28 [serial 0] [ 8.495 cpu0 kernel] Boot: CPU ready (63ms)
15:46:28 [serial 0] [ 8.496 cpu0 kernel] ACPI: RSDP at 0x7f77e014
15:46:28 [serial 0] [ 8.496 cpu0 kernel] ACPI: MCFG found at 0x7f776000
15:46:28 [serial 0] [ 8.496 cpu0 kernel] ACPI: ECAM base address: 0xe0000000
15:46:28 [serial 0] [ 8.496 cpu0 kernel] mmio: 0xe0000000+0x10000000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [ 8.496 cpu0 kernel] PCI: Enumerating devices...
15:46:28 [serial 0] [ 8.497 cpu0 kernel]   PCI 00:00.0 [0600] vendor=8086 device=29c0 prog_if=00 bars=[]
15:46:28 [serial 0] [ 8.497 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0xc00000c000]
15:46:28 [serial 0] [ 8.497 cpu0 kernel]   PCI 00:02.0 [0108] vendor=1b36 device=0010 prog_if=02 bars=[bar0=0xc000010000 bar4=0x80044000]
15:46:28 [serial 0] [ 8.498 cpu0 kernel]   PCI 00:03.0 [0200] vendor=1af4 device=1041 prog_if=00 bars=[bar1=0x80043000 bar4=0xc000000000]
15:46:28 [serial 0] [ 8.498 cpu0 kernel]   PCI 00:04.0 [0401] vendor=1af4 device=1059 prog_if=00 bars=[bar1=0x80042000 bar4=0xc000004000]
15:46:28 [serial 0] [ 8.498 cpu0 kernel]   PCI 00:05.0 [0780] vendor=1af4 device=1043 prog_if=00 bars=[bar1=0x80041000 bar4=0xc000008000]
15:46:28 [serial 0] [ 8.499 cpu0 kernel]   PCI 00:1f.0 [0601] vendor=8086 device=2918 prog_if=00 bars=[]
15:46:28 [serial 0] [ 8.499 cpu0 kernel]   PCI 00:1f.2 [0106] vendor=8086 device=2922 prog_if=01 bars=[bar4=none(it is an I/O BAR at port 0x6040, not memory) bar5=0x80040000]
15:46:28 [serial 0] [ 8.500 cpu0 kernel]   PCI 00:1f.3 [0c05] vendor=8086 device=2930 prog_if=00 bars=[bar4=none(it is an I/O BAR at port 0x6000, not memory)]
15:46:28 [serial 0] [ 8.502 cpu0 kernel] PCI: Enumeration complete, 9 functions.
15:46:28 [serial 0] [ 8.508 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x80000000..0x80100000, mem 0xc000000000..0xc000100000, mem 0x80100000..0xe0000000, mem 0xc000100000..0xe000000000
15:46:28 [serial 0] [ 8.510 cpu0 kernel] pcidev: 9 functions; 2 run(s) of 2 MiB or more below 0xfec00000 and 3 from 0x100000000
15:46:28 [serial 0] [ 8.511 cpu0 kernel] pcidev:   0x80045000..0xe0000000 (1535 MiB)
15:46:28 [serial 0] [ 8.511 cpu0 kernel] pcidev:   0xf0000000..0xfec00000 (236 MiB)
15:46:28 [serial 0] [ 8.511 cpu0 kernel] pcidev:   0x180000000..0xc000000000 (780288 MiB)
15:46:28 [serial 0] [ 8.511 cpu0 kernel] pcidev:   0xc000012000..0xfd00000000 (249855 MiB)
15:46:28 [serial 0] [ 8.511 cpu0 kernel] pcidev:   0x10000000000..0xffffffffffffffff (17592184995839 MiB)
15:46:28 [serial 0] [ 8.512 cpu0 kernel] iommu: DMAR haw=48 flags=0x01 intr_remap=y x2apic_opt_out=n dma_ctrl_opt_in=n
15:46:28 [serial 0] [ 8.513 cpu0 kernel] mmio: 0xfed90000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [ 8.513 cpu0 kernel] iommu: unit0 @0xfed90000 seg=0 pci_all=n ver=1.0 cap=0x80d2008c222f0686 ecap=0x0000000000f00f4a gsts=0x00000000 aw=48 sagaw=0x06 mgaw=48 nd=65536 sps2m=y cm=y psi=y nfr=1 fro=0x220 qi=y ir=y eim=n pt=y coherent=n sc=n
15:46:28 [serial 0] [ 8.514 cpu0 kernel] iommu: unit0 scope ioapic ff:00.0 id=0
15:46:28 [serial 0] [ 8.514 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:00.0 id=0
15:46:28 [serial 0] [ 8.515 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:01.0 id=0
15:46:28 [serial 0] [ 8.515 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:02.0 id=0
15:46:28 [serial 0] [ 8.515 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:03.0 id=0
15:46:28 [serial 0] [ 8.515 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:04.0 id=0
15:46:28 [serial 0] [ 8.516 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:05.0 id=0
15:46:28 [serial 0] [ 8.516 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.0 id=0
15:46:28 [serial 0] [ 8.516 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.2 id=0
15:46:28 [serial 0] [ 8.516 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.3 id=0
15:46:28 [serial 0] [ 8.516 cpu0 kernel] iommu: DMAR describes 1 units and 0 reserved regions, 0 of them inside the identity domain
15:46:28 [serial 0] [ 8.518 cpu0 kernel] iommu: identity domain aw=48 covers 0x0..0x180000000 in 3072 2 MiB leaves
15:46:28 [serial 0] [ 8.522 cpu0 kernel] iommu: unit0 @0xfed90000 translating gsts=0xc7000000 tes=y qies=y ires=y cfis=n irt=0xc0c000 irta=0xc0c007 eime=n root=0xc08000 domain=1 aw=48 streams=9
15:46:28 [serial 0] [ 8.523 cpu0 kernel] file cache: budget 16152 pages (63 MiB)
15:46:28 [serial 0] [ 8.524 cpu0 kernel] gpt: the boot volume names 1F212C63-2401-495F-BC70-B3FE4853CC49 as the log partition
15:46:28 [serial 0] [ 8.524 cpu0 kernel] gpt: firmware booted us from partition F62C7C33-D980-4CF5-9418-5E09B0171803 at LBA 264192+69632
15:46:28 [serial 0] [ 8.524 cpu0 kernel] Boot: peripherals ready (28ms)
15:46:28 [serial 0] [ 8.525 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
15:46:28 [serial 0] [ 8.537 cpu1 kernel] control_regs: cpu1 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
15:46:28 [serial 0] [ 8.537 cpu1 kernel] fpu: cpu1 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
15:46:28 [serial 0] [ 8.539 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
15:46:28 [serial 0] [ 8.540 cpu0 kernel] SMP: cpu1 tsc=8531465000 inside the BSP's 8521155000..8534208000 (13053000 cycles wide)
15:46:28 [serial 0] [ 8.541 cpu0 kernel] SMP: AP cpu1 lapic=1 online
15:46:28 [serial 0] [ 8.541 cpu0 kernel] SMP: 2 of 2 MADT cpus online, 1 of 1 APs inside the BSP's TSC bracket
15:46:28 [serial 0] [ 8.541 cpu0 kernel] control_regs: 2 of 2 cpus hold cr0=0x80010033 cr4=0x00300668 efer=0x0901
15:46:28 [serial 0] [ 8.542 cpu0 kernel] root: mounted read-only from memory at 0x7c40a000+0xb00000, filesystem b0e64185d029ee7f5507b772a04d75ce, 2816 blocks
15:46:28 [serial 0] [ 8.544 cpu0 kernel] Boot: subsystems ready (18ms)
15:46:28 [serial 0] [ 8.564 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=5ms relocs=0ms deps=0ms tls=7ms total=16ms)
15:46:28 [serial 0] [ 8.565 cpu0 kernel] spawned /system/bin/supervisor pid=0
15:46:28 [serial 0] [ 8.565 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
15:46:28 [serial 0] [ 8.565 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
15:46:28 [serial 0] [ 8.566 cpu0 kernel] xHCI: BAR0=0xc00000c000
15:46:28 [serial 0] [ 8.566 cpu0 kernel] iommu: irte4 source=00:01.0 p=1 sid=0x0008 svt=1 sq=0 vector=0x21 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [ 8.567 cpu0 kernel] mmio: 0xc00000f000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [ 8.567 cpu0 kernel] PCI 00:01.0: msix address=0xfee00098 data=0x00000000
15:46:28 [serial 0] [ 8.568 cpu0 kernel] xHCI: MSI-X enabled (vector 0x21)
15:46:28 [serial 0] [ 8.568 cpu0 kernel] mmio: 0xc00000c000+0x10000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [ 8.568 cpu0 kernel] xHCI: max_slots=64 max_ports=8 ctx_size=32 pagesize=0x1
15:46:28 [serial 0] [ 8.569 cpu0 kernel] xHCI: dma 2048 KiB: scratchpad=0 device blocks=64 of 12288 B (max_slots=64)
15:46:28 [serial 0] [ 8.569 cpu0 kernel] xHCI: no USB Legacy Support capability (xECP=0x8), nothing to hand over
15:46:28 [serial 0] [ 8.570 cpu0 kernel] xHCI: USB 2.0 on ports 5..=8
15:46:28 [serial 0] [ 8.570 cpu0 kernel] xHCI: USB 3.0 on ports 1..=4
15:46:28 [serial 0] [ 8.571 cpu0 kernel] xHCI: 4 USB2 and 4 USB3 port register(s) of 8 named, 0 capability(ies) refused
15:46:28 [serial 0] [ 8.571 cpu0 kernel] xHCI: controller reset
15:46:28 [serial 0] [ 8.571 cpu0 kernel] iommu: domain2 root=0xc0d000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
15:46:28 [serial 0] [ 8.573 cpu0 kernel] iommu: domain2 maps 0x1a00000..0x1c00000 at 0x400000000000
15:46:28 [serial 0] [ 8.574 cpu0 kernel] iommu: 00:01.0 moves to domain2
15:46:28 [serial 0] [ 8.576 cpu0 kernel] xHCI: controller started
15:46:28 [serial 0] [ 8.577 cpu0 kernel] xHCI: 8/8 root-hub ports powered (PPC=0)
15:46:28 [serial 0] [ 8.678 cpu0 kernel] xHCI: port 5 connected
15:46:28 [serial 0] [ 8.679 cpu0 kernel] xHCI: port 5 enabled, speed=3
15:46:28 [serial 0] [ 8.680 cpu0 kernel] xHCI: slot 1 enabled (dma +0x30000)
15:46:28 [serial 0] [ 8.681 cpu0 kernel] xHCI: device addressed
15:46:28 [serial 0] [ 8.684 cpu0 kernel] xHCI: device class=0x0 vendor=0627 product=0001
15:46:28 [serial 0] [ 8.684 cpu0 kernel] xHCI: HID keyboard iface=0 ep=0x81 max_pkt=8 interval=7 dci=3
15:46:28 [serial 0] [ 8.684 cpu0 kernel] xHCI: configuration set
15:46:28 [serial 0] [ 8.685 cpu0 kernel] xHCI: endpoint configured
15:46:28 [serial 0] [ 8.685 cpu0 kernel] xHCI: USB keyboard ready on slot 1, int_ring +0x30000
15:46:28 [serial 0] [ 8.685 cpu0 kernel] xHCI: 1 controller(s), 1 HID device(s)
15:46:28 [serial 0] [ 8.686 cpu0 kernel] usb-storage: 0 device(s)
15:46:28 [serial 0] [10.205 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
15:46:28 [serial 0] [10.205 cpu0 kernel] root: the partition ROOT was read from, 55F5929E-BE2F-4A42-9FD5-3E51C034C809, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
15:46:28 [serial 0] [10.206 cpu0 kernel] Boot: storage ready (1640ms)
15:46:28 [serial 0] [10.207 cpu0 kernel] i8042: FADT rev 3 iapc_boot_arch=0x0002, bit 1 (8042) set — probing either way
15:46:28 [serial 0] [10.208 cpu0 kernel] i8042: ok selftest=0x55 cfg=0x77->0x64 port1=ok port2=ok
15:46:28 [serial 0] [10.214 cpu0 kernel] iommu: irte5 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [10.215 cpu0 kernel] ioapic: gsi 1 on id=0 rte=0x000b000000010024
15:46:28 [serial 0] [10.222 cpu0 kernel] iommu: irte6 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [10.223 cpu0 kernel] ioapic: gsi 12 on id=0 rte=0x000d000000010024
15:46:28 [serial 0] [10.226 cpu0 kernel] i8042: kbd set2+xlat (readback 0x41) scanning on, GSI 1 -> vec 0x24 apic 0 on
15:46:28 [serial 0] [10.227 cpu0 kernel] i8042: aux rate=100 res=8/mm, GSI 12 -> vec 0x24 apic 0 on
15:46:28 [serial 0] [10.231 cpu0 kernel] acpi: the ACPI row: PM1a events 0x600+4, GPE0 0x620+16, SCI gsi 9 level/high, the fixed-hardware power button, embedded controller none (the ECDT is unusable: Absent); the firmware handed over in ACPI mode
15:46:28 [serial 0] [10.232 cpu0 kernel] acpi: the Global Lock is the FACS's at 0x7f7dd010, in memory the firmware's map types 10
15:46:28 [serial 0] [10.233 cpu0 kernel] virtio-console: found at PCI 00:05.0
15:46:28 [serial 0] [10.233 cpu0 kernel] iommu: domain3 root=0xc10000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
15:46:28 [serial 0] [10.234 cpu0 kernel] iommu: domain3 maps 0x1c00000..0x1e00000 at 0x400000000000
15:46:28 [serial 0] [10.234 cpu0 kernel] iommu: 00:05.0 moves to domain3
15:46:28 [serial 0] [10.234 cpu0 kernel] VirtIO: PCI 00:05.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
15:46:28 [serial 0] [10.236 cpu0 kernel] mmio: 0xc000008000+0x4000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.237 cpu0 kernel] VirtIO: PCI 00:05.0 features device=0x10330000004 negotiated=0x300000000 access_platform=y
15:46:28 [serial 0] [10.265 cpu0 kernel] virtio-console: initialized (8 RX bufs of 256 bytes, TX buf 4096 bytes)
15:46:28 [serial 0] [10.265 cpu0 kernel] virtio-sound: found at PCI 00:04.0
15:46:28 [serial 0] [10.265 cpu0 kernel] VirtIO: PCI 00:04.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
15:46:28 [serial 0] [10.267 cpu0 kernel] mmio: 0xc000004000+0x4000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.267 cpu0 kernel] VirtIO: PCI 00:04.0 features device=0x10379000000 negotiated=0x300000000 access_platform=y
15:46:28 [serial 0] [10.267 cpu0 kernel] virtio-sound: 0 jacks, 1 streams, 0 chmaps
15:46:28 [serial 0] [10.267 cpu0 kernel] iommu: domain4 root=0xc13000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
15:46:28 [serial 0] [10.268 cpu0 kernel] iommu: domain4 maps 0x1e00000..0x2000000 at 0x400000000000
15:46:28 [serial 0] [10.269 cpu0 kernel] iommu: domain4 maps 0x2000000..0x2200000 at 0x400000200000
15:46:28 [serial 0] [10.269 cpu0 kernel] iommu: 00:04.0 moves to domain4
15:46:28 [serial 0] [10.270 cpu0 kernel] iommu: irte7 source=00:04.0 p=1 sid=0x0020 svt=1 sq=0 vector=0x23 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [10.270 cpu0 kernel] mmio: 0x80042000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.271 cpu0 kernel] PCI 00:04.0: msix address=0xfee000f8 data=0x00000000
15:46:28 [serial 0] [10.271 cpu0 kernel] virtio-sound: MSI-X vector 0x23 on table entry 0
15:46:28 [serial 0] [10.271 cpu0 kernel] virtio-sound: bound, 8 periods of 512 bytes, doorbells at 0x0/0x4/0x8
15:46:28 [serial 0] [10.272 cpu0 kernel] GPU: none found, running headless
15:46:28 [serial 0] [10.272 cpu0 kernel] Boot: devices ready (64ms)
15:46:28 [serial 0] [10.273 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
15:46:28 [serial 0] [10.274 cpu0 kernel] Boot: complete (1842ms)
15:46:28 [serial 0] [10.275 cpu0 kernel] boot: IA32_TSC_ADJUST not on this CPU
15:46:28 [serial 0] [10.275 cpu0 kernel] boot: power-on to loader 7807 ms, loader 557 ms (ROOT read 18 ms), kernel to Boot: complete 1909 ms
15:46:28 [serial 0] [10.276 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
15:46:28 [serial 0] [10.276 cpu1 kernel] counters: cpu1 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
15:46:28 [serial 0] [10.276 cpu1 kernel] CPU 1: joining scheduler
15:46:28 [serial 0] [10.283 cpu1 kernel] i8042: armed at 1795ms, idle at 1852ms, 0 interrupts — the pin has never asserted (kbd GSI 1, aux GSI 12)
15:46:28 [serial 0] [10.345 cpu0 kernel] iommu: domain5 root=0xc16000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
15:46:28 [serial 0] [10.345 cpu0 kernel] iommu: irte0 source=00:02.0 p=1 sid=0x0010 svt=1 sq=0 vector=0x28 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [10.349 cpu0 kernel] mmio: 0x80044000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.349 cpu0 kernel] PCI 00:02.0: msix address=0xfee00018 data=0x00000000
15:46:28 [serial 0] [10.365 cpu0 kernel] mmio: 0xc000010000+0x2000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.368 cpu0 kernel] mmio: 0xc000200000+0x200000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.369 cpu0 kernel] pcidev: PCI 00:02.0 BAR 0 (0x2000 bytes) placed at 0xc000200000 — inside firmware's mem 0xc000100000; its +0x0 dword answers 0x0f0107ff there, and answered 0x0f0107ff from 0xc000010000, where firmware put it
15:46:28 [serial 0] [10.369 cpu0 kernel] iommu: 00:02.0 moves to domain5
15:46:28 [serial 0] [10.369 cpu0 kernel] pcidev: PCI 00:02.0 [1b36:0010] handed over on slot 0, vector 0x28
15:46:28 [serial 0] [10.390 cpu0 kernel] spawn: /system/bin/diskserver pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=3ms total=5ms)
15:46:28 [serial 0] [10.397 cpu1 kernel] shm: 0xc000200000 mapped Uncacheable into pid 2
15:46:28 [serial 0] [10.398 cpu1 kernel] iommu: domain5 maps 0x4800000..0x4a00000 at 0x400002000000
15:46:28 [serial 0] [10.405 cpu1 kernel] pcidev: slot 0 took its first message on vector 0x28
15:46:28 [serial 0] [10.421 cpu0 kernel] spawn: /system/bin/fileserver pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=4ms total=6ms)
15:46:28 [serial 0] [10.429 cpu0 kernel] spawn: /system/bin/fileserver pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=3ms total=4ms)
15:46:28 [serial 0] [10.445 cpu0 kernel] spawn: /system/bin/fileserver pid=5 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=8ms total=10ms)
15:46:28 [serial 0] [10.903 cpu0 kernel] spawn: /system/bin/logkeeper pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=3ms total=5ms)
15:46:28 [serial 0] [10.919 cpu0 kernel] iommu: domain6 root=0xc19000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
15:46:28 [serial 0] [10.919 cpu0 kernel] iommu: irte1 source=00:03.0 p=1 sid=0x0018 svt=1 sq=0 vector=0x29 apic=0x0 dst=0x0 trigger=edge
15:46:28 [serial 0] [10.920 cpu0 kernel] mmio: 0x80043000+0x1000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.920 cpu0 kernel] PCI 00:03.0: msix address=0xfee00038 data=0x00000000
15:46:28 [serial 0] [10.926 cpu0 kernel] mmio: 0xc000000000+0x4000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.934 cpu0 kernel] mmio: 0xc000400000+0x200000 PAT Uncacheable (MTRR UC)
15:46:28 [serial 0] [10.934 cpu0 kernel] pcidev: PCI 00:03.0 BAR 4 (0x4000 bytes) placed at 0xc000400000 — inside firmware's mem 0xc000100000; its +0x4 dword answers 0x00000103 there, and answered 0x00000103 from 0xc000000000, where firmware put it
15:46:28 [serial 0] [10.934 cpu0 kernel] iommu: 00:03.0 moves to domain6
15:46:28 [serial 0] [10.934 cpu0 kernel] pcidev: PCI 00:03.0 [1af4:1041] handed over on slot 1, vector 0x29
15:46:28 [serial 0] [10.968 cpu0 kernel] spawn: /system/bin/netstack pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=7ms total=8ms)
15:46:28 [serial 0] [11.048 cpu0 kernel] spawn: /system/bin/test-runner pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=4ms total=5ms)
15:46:28 [serial 0] [11.058 cpu0 kernel] shm: 0xc000400000 mapped Uncacheable into pid 7
15:46:28 [serial 0] [11.073 cpu0 kernel] iommu: domain6 maps 0x10000000..0x10200000 at 0x400002000000
15:46:28 [serial 0] [11.121 cpu0 kernel] pcidev: slot 1 took its first message on vector 0x29
15:46:29 [serial 0] [10.298 supervisor] supervisor: build c86a74113b35630f7ee9f1a32517719eb919abcd clean, committed 2026-10-09 15:38:13 UTC, toolchain bc7e876cc60df9b3, x86_64
15:46:29 [serial 0] [10.393 supervisor] supervisor: started diskserver
15:46:29 [serial 0] [10.421 supervisor] supervisor: started fileserver
15:46:29 [serial 0] [10.421 diskserver] diskserver: NVMe up: 4 I/O queues of 63 commands, volatile write cache present, so a flush issues Flush, 512-byte sectors, 499712 sectors
15:46:29 [serial 0] [10.430 supervisor] supervisor: started fileserver
15:46:29 [serial 0] [10.446 supervisor] supervisor: started fileserver
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition C8D70676-7757-4C01-AFD0-209EB65D21B1 at block 256, 32768 blocks
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition F62C7C33-D980-4CF5-9418-5E09B0171803 at block 33024, 8704 blocks
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition A651F6EE-5205-453E-A25F-7FE16B40EC72 at block 41728, 256 blocks
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition 1F212C63-2401-495F-BC70-B3FE4853CC49 at block 41984, 8704 blocks
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition B8DBF3D5-866E-42EF-BD45-3CFB9F7FF8A2 at block 50688, 8704 blocks
15:46:29 [serial 0] [10.793 diskserver] diskserver: partition 55F5929E-BE2F-4A42-9FD5-3E51C034C809 is the ROOT this machine runs from; refusing every session to it
15:46:29 [serial 0] [10.799 diskserver] diskserver: session 0 opened 1F212C63-2401-495F-BC70-B3FE4853CC49 (8704 blocks)
15:46:29 [serial 0] [10.800 diskserver] diskserver: session 1 opened F62C7C33-D980-4CF5-9418-5E09B0171803 (8704 blocks)
15:46:29 [serial 0] [10.809 diskserver] diskserver: session 2 opened C8D70676-7757-4C01-AFD0-209EB65D21B1 (32768 blocks)
15:46:29 [serial 0] [10.812 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
15:46:29 [serial 0] [10.813 fileserver] fileserver: Boot serving /boot — FAT32 read-only, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
15:46:29 [serial 0] [10.823 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
15:46:29 [serial 0] [10.823 fileserver] fileserver: Log serving /log — FAT32, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
15:46:29 [serial 0] [10.831 fileserver] fileserver: block 0 designates this partition for ToyOS; formatting it
15:46:29 [serial 0] [10.833 fileserver] fileserver: Data serving /apps, /config, /home, /state — bcachefs, 0 names, 0 files open; cache 4 blocks (4 dirty), 6 of 8 reads hit
15:46:29 [serial 0] [10.903 supervisor] supervisor: started logkeeper
15:46:29 [serial 0] [11.030 supervisor] supervisor: started netstack
15:46:29 [serial 0] [11.048 supervisor] supervisor: started test-runner
15:46:29 [serial 0] [11.055 test-runner] ===READY===
15:46:29 [qemu] Reached ===READY===
15:46:29 [serial 0] [11.057 netstack] netstack: this claim answers 4096 bytes of configuration space and refuses every access outside them
15:46:29 [serial 0] [11.072 netstack] netstack: VirtIO: PCI 00:03.0 features device=0x10330bf8024 negotiated=0x300000020 access_platform=y
15:46:29 [serial 0] [11.111 netstack] netstack: MAC 52:54:00:12:34:56
15:46:29 [serial 0] [11.118 netstack] netstack: DHCP: lease 10.0.2.15/24 from 10.0.2.2, gateway 10.0.2.2, dns [10.0.2.3], 6 ms after netstack came up
15:46:29 [serial 0] [11.119 netstack] netstack: ready, at most 103 piped connections (4 MiB each of 4038 MiB total)
15:46:29 [serial 0] [11.126 logkeeper] logkeeper: this boot's kernel log is /log/2026-10-09-154628.log (2026-10-09 15:46:28 UTC)
15:46:30 [serial 0] [12.126 netstack] netstack: mDNS: no host answered for toyos-t14.local; this machine answers as it
15:46:30 [serial 0] [12.561 cpu0 kernel] spawn: /system/bin/test_rs_ring_kat pid=9 unresolved=0 (layout=2ms relocs=0ms deps=0ms tls=9ms total=11ms)
15:46:30 [serial 0] [12.613 cpu1 kernel] exit: test_rs_ring_kat pid=9 code=0 cpu=48ms peak=4MB allocs=3 frees=0 syscalls=12 syscall_wall=1ms 6=3 14=1 50=1 51=1 63=2 72=1 73=1 91=1 106=1
15:46:30 [serial 0] [12.537 test-runner] ===TEST_START test_rs_ring_kat===
15:46:30 [serial 0] [12.571 test-runner pid=9] ring_kat: sha256(abc) ok
15:46:30 [serial 0] [12.572 test-runner pid=9] ring_kat: sha512(abc) ok
15:46:30 [serial 0] [12.593 test-runner pid=9] ring_kat: sha256(a * 1000000) ok
15:46:30 [serial 0] [12.593 test-runner pid=9] ring_kat: hmac-sha256 rfc4231 case 2 ok
15:46:30 [serial 0] [12.596 test-runner pid=9] ring_kat: x25519 rfc7748 alice's public key ok
15:46:30 [serial 0] [12.598 test-runner pid=9] ring_kat: x25519 rfc7748 shared secret ok
15:46:30 [serial 0] [12.599 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 ciphertext ok
15:46:30 [serial 0] [12.599 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 tag ok
15:46:30 [serial 0] [12.599 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 opened, and refused with a flipped tag bit
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-128-gcm case 4 ciphertext ok
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-128-gcm case 4 tag ok
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-128-gcm case 4 opened, and refused with a flipped tag bit
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-256-gcm case 16 ciphertext ok
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-256-gcm case 16 tag ok
15:46:30 [serial 0] [12.601 test-runner pid=9] ring_kat: aes-256-gcm case 16 opened, and refused with a flipped tag bit
15:46:30 [serial 0] [12.602 test-runner pid=9] ring_kat: ed25519 rfc8032 test 1 public key ok
15:46:30 [serial 0] [12.603 test-runner pid=9] ring_kat: ed25519 rfc8032 test 1 signature ok
15:46:30 [serial 0] [12.611 test-runner pid=9] ring_kat: ecdsa p-256 rfc6979 a.2.5 verified, and refused for another message
15:46:30 [serial 0] [12.611 test-runner pid=9] ring_kat: SystemRandom filled two different 32-byte buffers
15:46:30 [serial 0] [12.611 test-runner pid=9] ring_kat: ok
15:46:30 [serial 0] [12.616 test-runner] ===TEST_END test_rs_ring_kat exit=0===
15:46:30 [serial 0] [12.660 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=10 unresolved=0 (layout=2ms relocs=0ms deps=0ms tls=3ms total=6ms)
15:46:30 [serial 0] [12.650 test-runner] ===TEST_START test_rs_https_get===
15:46:30 [serial 0] [12.911 cpu0 kernel] exit: test_rs_https_get pid=10 code=0 cpu=185ms peak=22MB allocs=13 frees=0 syscalls=81 syscall_wall=85ms 0=10 1=12 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=11 72=1 73=1 75=3 76=1 91=1 99=1 102=7 103=1 105=4 106=5
15:46:30 [serial 0] [12.910 test-runner pid=10] https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5
15:46:30 [serial 0] [12.912 test-runner] ===TEST_END test_rs_https_get exit=0===
15:46:30 [serial 0] [12.946 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=11 unresolved=0 (layout=6ms relocs=0ms deps=0ms tls=7ms total=21ms)
15:46:30 [serial 0] [12.923 test-runner] ===TEST_START test_rs_https_get===
15:46:30 [serial 0] [13.204 cpu1 kernel] exit: test_rs_https_get pid=11 code=2 cpu=193ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=43ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
15:46:31 [serial 0] [13.202 test-runner pid=11] https_get: refused not-valid-for-name
15:46:31 [serial 0] [13.208 test-runner] ===TEST_END test_rs_https_get exit=2===
15:46:31 [serial 0] [13.324 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=12 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=2ms total=4ms)
15:46:31 [serial 0] [13.319 test-runner] ===TEST_START test_rs_https_get===
15:46:31 [serial 0] [13.590 cpu0 kernel] exit: test_rs_https_get pid=12 code=2 cpu=212ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=107ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
15:46:31 [serial 0] [13.588 test-runner pid=12] https_get: refused unknown-issuer
15:46:31 [serial 0] [13.590 test-runner] ===TEST_END test_rs_https_get exit=2===
15:46:31   PASS  https_fetch  (14s)
15:46:31   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:46:31 host: fastest boot 11399 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
15:46:31 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:46:31 test result: ok. 1 passed, 1 total (25.6s; workers: 11s building, 14s testing)
EXIT=0

The known answers checked against ring on the host before the guest ran them (ring-kat-on-host.log):

    Updating git repository `https://github.com/ToyOSOrg/ring`
    Updating crates.io index
     Locking 19 packages to latest compatible versions
   Compiling find-msvc-tools v0.1.14
   Compiling shlex v2.0.1
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.5
   Compiling untrusted v0.9.0
   Compiling cc v1.6.0
   Compiling getrandom v0.2.17
   Compiling ring v0.17.14 (https://github.com/ToyOSOrg/ring?branch=toyos-0.17.14#34818c45)
   Compiling kathost v0.1.0 (<scratch>/tls/katHost)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.39s
     Running `target/debug/kathost`
ring_kat: sha256(abc) ok
ring_kat: sha512(abc) ok
ring_kat: sha256(a * 1000000) ok
ring_kat: hmac-sha256 rfc4231 case 2 ok
ring_kat: x25519 rfc7748 alice's public key ok
ring_kat: x25519 rfc7748 shared secret ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 ciphertext ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 tag ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 opened, and refused with a flipped tag bit
ring_kat: aes-128-gcm case 4 ciphertext ok
ring_kat: aes-128-gcm case 4 tag ok
ring_kat: aes-128-gcm case 4 opened, and refused with a flipped tag bit
ring_kat: aes-256-gcm case 16 ciphertext ok
ring_kat: aes-256-gcm case 16 tag ok
ring_kat: aes-256-gcm case 16 opened, and refused with a flipped tag bit
ring_kat: ed25519 rfc8032 test 1 public key ok
ring_kat: ed25519 rfc8032 test 1 signature ok
ring_kat: ecdsa p-256 rfc6979 a.2.5 verified, and refused for another message
ring_kat: SystemRandom filled two different 32-byte buffers
ring_kat: ok

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

The whole guest suite at c86a74113, cargo test, with uptime around it (guest-suite-3.meta):

head: c86a74113b35630f7ee9f1a32517719eb919abcd
uptime before: 17:38  up 10 days,  5:22, 6 users, load averages: 37.48 41.73 59.20
uptime after: 17:39  up 10 days,  5:23, 6 users, load averages: 43.73 42.64 57.97
EXIT=0

The harness's part of its output, from its first RUN to the end (guest-suite-3.raw from line 500; lines 1–499 are the host build and the library's unit tests the bare cargo test also runs, 341 passed at line 489):

guest-suite-3.raw, lines 500–end

     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:38:30 running 39 tests, 12 wide

15:38:30   RUN   nested_nmi_is_loud
15:38:30   RUN   libc_sockets
15:38:30   RUN   acpi_power_button
15:38:30   RUN   acpi_mediated_access
15:38:30   RUN   netstack_socket_churn
15:38:30   RUN   acpi_lock_given_back_on_one_cpu
15:38:30   RUN   acpi_supply_outlives_holder
15:38:30   RUN   machine_shutdown_short_stop
15:38:30   BUILD x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop
15:38:30   RUN   iommu_virtio_platform
15:38:30   RUN   https_fetch
15:38:30   RUN   machine_shutdown
15:38:30   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
15:38:30   RUN   bar_map_again
15:38:30   BUILD x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again
15:38:30   BUILD x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access
15:38:30   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button
15:38:30   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud
15:38:30   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown
15:38:30   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:38:30   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:35   BUILD x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets
15:38:36 [build-lock] artifact staging acquired after 1.1s
15:38:36 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:36   BUILT x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again  (6s)
15:38:36 [build-lock] artifact staging acquired after 1.2s
15:38:36   BUILD x86_64 ROOT of tests/testcases, for bar_map_again
15:38:36   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (6s)
15:38:36 [build-lock] artifact staging acquired after 1.2s
15:38:36   BUILD x86_64 ROOT of tests/netcase, for netstack_socket_churn
15:38:36 [build-lock] artifact staging acquired after 1.2s
15:38:36 [build-lock] artifact staging acquired after 1.2s
15:38:36 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:36 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:36 [build-lock] artifact staging acquired after 1.5s
15:38:36 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:37   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (7s)
15:38:37   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
15:38:37 [build-lock] artifact staging acquired after 1.5s
15:38:37   BUILT x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop  (7s)
15:38:37   BUILD x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop
15:38:37 [build-lock] artifact staging acquired after 1.6s
15:38:37   BUILT x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access  (7s)
15:38:37 [build-lock] artifact staging acquired after 637.8ms
15:38:37   BUILD x86_64 ROOT of tests/acpicase, for acpi_mediated_access
15:38:37   BUILD x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder
15:38:37   BUILD x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu
15:38:37 [build-lock] artifact staging acquired after 779.1ms
15:38:37   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown  (7s)
15:38:38 [build-lock] artifact staging acquired after 1.4s
15:38:38   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform  (8s)
15:38:38 [build-lock] artifact staging acquired after 1.4s
15:38:38   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button  (8s)
15:38:38   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud  (8s)
15:38:39   BUILT x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets  (3s)
15:38:39   BUILD x86_64 ROOT of tests/netcase, for libc_sockets
15:38:39 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] artifact staging acquired after 249.9ms
15:38:40   BUILT x86_64 ROOT of tests/netcase, for netstack_socket_churn  (3s)
15:38:40   BUILT x86_64 ROOT of tests/testcases, for bar_map_again  (4s)
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (4s)
15:38:40   BUILD x86_64 ROOT of tests/netcase, for https_fetch
15:38:40 [build-lock] artifact staging acquired after 123.4ms
15:38:40 [build-lock] artifact staging acquired after 103.0ms
15:38:40 [build-lock] artifact staging acquired after 75.7ms
15:38:40 [build-lock] artifact staging acquired after 92.9ms
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:38:40 [build-lock] artifact staging acquired after 179.0ms
15:38:40   BUILT x86_64 ROOT of tests/acpicase, for acpi_mediated_access  (4s)
15:38:41 [build-lock] artifact staging acquired after 392.1ms
15:38:41   BUILT x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder  (4s)
15:38:41 [build-lock] artifact staging acquired after 634.1ms
15:38:41   BUILT x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop  (4s)
15:38:41   BUILT x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu  (4s)
15:38:42   BUILT x86_64 ROOT of tests/netcase, for libc_sockets  (4s)
15:38:46   BUILT x86_64 ROOT of tests/netcase, for https_fetch  (6s)
15:38:47   [nmi] nested: [nmi] NESTED NMI on cpu 0: a second NMI entered while IST2 was still in use.
15:38:47   PASS  nested_nmi_is_loud  (9s)
15:38:47   RUN   console_image_boots
15:38:47   BUILD x86_64 ROOT of console, for console_image_boots
15:38:51   [power] shutdown: QEMU stopped the guest for guest-shutdown
15:38:51   PASS  machine_shutdown  (14s)
15:38:51   RUN   nvme_disk_keeps_log_and_home
15:38:51   [iommu] headless: 3 virtio function(s) behind a unit = true, the audio function 00:04.0 among them
15:38:52   [power] 1 table(s) loaded; [13.400 acpiserver] acpiserver: \_S5 handed to the kernel: SLP_TYPa=0 beside [13.400 cpu0 kernel] power: S5 is PM1a 0x604 with SLP_TYPa=0, as the acpi claim's holder supplied it
15:38:52   [power] the press: acpiserver: the power button was pressed, on SCI 1 of this boot; asking the supervisor to power off
15:38:52   PASS  acpi_power_button  (14s)
15:38:52   RUN   screen_panic_muted
15:38:52 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
15:38:52 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
15:38:52   BUILT x86_64 ROOT of console, for console_image_boots  (5s)
15:38:55   PASS  netstack_socket_churn  (16s)
15:38:55   RUN   screen_fatal_behind_a_painter
15:38:56   [acpi] [14.985 cpu0 kernel] Shutting down.
15:38:56   [acpi] [10.607 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
15:38:56   [acpi] [10.621 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
15:38:56   [acpi] [14.847 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
15:38:56   [acpi] [14.848 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
15:38:56   [acpi] [14.850 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
15:38:56   [acpi] [14.851 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
15:38:56   [acpi] [14.851 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
15:38:56   [acpi] [14.852 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
15:38:56   [acpi] [15.034 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
15:38:56   [acpi] [15.035 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
15:38:56   [acpi] [15.037 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
15:38:56   [acpi] [15.038 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
15:38:56   [acpi] [15.034 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [1, 1, 1]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
15:38:56   [acpi] [15.034 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
15:38:56   [acpi] [14.868 cpu1 kernel tid=2] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 20010ns, its SMI count unread before the write and unread after; the first of that byte
15:38:56   [acpi] [14.884 cpu1 kernel tid=4] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 23011ns, its SMI count unread before the write and unread after; the first of that byte
15:38:56   [acpi] [15.025 cpu1 kernel tid=6] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 2001ns, its SMI count unread before the write and unread after; the first of that byte
15:38:56   [acpi] [15.028 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1000ns, its SMI count unread before the write and unread after; the first of that byte
15:38:56   [acpi] [15.028 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:38:56   [acpi] [14.752 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
15:38:56   [acpi] [15.137 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
15:38:56   [acpi] QEMU stopped the guest for guest-shutdown, with no claim held, on the sleep type a holder that is gone supplied
15:38:56   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
15:38:56   PASS  acpi_supply_outlives_holder  (22s)
15:38:56   RUN   screen_fatal_halt_composited
15:38:56   BUILD x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited
15:38:56   PASS  acpi_mediated_access  (15s)
15:38:56   RUN   screen_loader_clears
15:38:57   [claims] bar_map_again: two answers held at once map apart, and the later outlives the earlier
15:38:57   [claims] bar_map_again: answered with a handle that maps
15:38:57   [claims] bar_map_again: answered after the refusal with a handle that maps
15:38:57   PASS  bar_map_again  (17s)
15:38:57   RUN   virt_early_panic
15:38:57   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic
15:38:57   [power] a short stop, then the power-off: stop: 18 of 19 userland thread(s) stopped across 1 cpu(s) in 0 ms of a 0 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; this reset lands wherever the other 1 are
15:38:57   PASS  machine_shutdown_short_stop  (16s)
15:38:57   RUN   virt_early_fault
15:38:57   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault
15:38:57   [acpi] [10.633 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
15:38:57   [acpi] [15.578 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
15:38:57   [acpi] [15.580 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
15:38:57   [acpi] [15.580 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
15:38:57   [acpi] [15.581 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
15:38:57   [acpi] [15.581 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
15:38:57   [acpi] [15.582 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
15:38:57   [acpi] [15.765 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
15:38:57   [acpi] [15.766 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
15:38:57   [acpi] [15.767 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
15:38:57   [acpi] [15.767 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
15:38:57   [acpi] [15.765 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [0, 0, 0]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
15:38:57   [acpi] [15.765 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
15:38:57   [acpi] [15.593 cpu0 kernel] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 17013ns, its SMI count unread before the write and unread after; the first of that byte
15:38:57   [acpi] [15.603 cpu0 kernel] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
15:38:57   [acpi] [15.603 cpu0 kernel] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:38:57   [acpi] [15.603 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:38:57   [acpi] [15.603 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:38:57   [acpi] [15.409 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
15:38:57   [acpi] [15.900 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
15:38:57   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
15:38:57   PASS  acpi_lock_given_back_on_one_cpu  (23s)
15:38:57   RUN   virt_el2_drop
15:38:57   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop
15:39:00 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:00 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:00 [build-lock] artifact staging acquired after 141.4ms
15:39:00 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
15:39:00 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
15:39:01   BUILT x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited  (5s)
15:39:01   PASS  libc_sockets  (24s)
15:39:01   RUN   virt_user_mode
15:39:01   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
15:39:01 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 1s so far
15:39:01 [build-lock] artifact staging acquired after 659.0ms
15:39:01 [build-lock] artifact staging acquired after 375.3ms
15:39:01 [build-lock] waiting for the artifact lock (artifact staging) — held, but the holder left no readable note
15:39:01 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:01   PASS  screen_panic_muted  (10s)
15:39:01   RUN   virt_timer_preempts
15:39:01   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
15:39:02 [build-lock] artifact staging acquired after 384.3ms
15:39:02   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault  (5s)
15:39:02 [build-lock] artifact staging acquired after 683.8ms
15:39:02   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop  (5s)
15:39:02   PASS  https_fetch  (16s)
15:39:02   RUN   virt_irq_storm
15:39:02   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic  (5s)
15:39:03   PASS  virt_early_fault  (1s)
15:39:03   RUN   virt_timer_floor
15:39:03   PASS  console_image_boots  (12s)
15:39:03   RUN   virt_fp_isolation
15:39:03   PASS  virt_early_panic  (1s)
15:39:03   RUN   virt_first_entry
15:39:04   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (4s)
15:39:04   [iommu] headless-no-iommu: 2 virtio function(s) behind a unit = false, the audio function 00:04.0 among them; the NIC's claim refused for want of a unit
15:39:04   PASS  virt_el2_drop  (3s)
15:39:04   RUN   virt_unmap_touch
15:39:04   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (3s)
15:39:04   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
15:39:07   PASS  screen_loader_clears  (11s)
15:39:07   RUN   virt_debug_refused
15:39:07   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (2s)
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_first_entry
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_fp_isolation
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_debug_refused
15:39:07   [virt] [ 4.092 cpu0 kernel] timer-floor: PASS span=10000 floor=10000 ticks: the comparator past the counter it was set from
15:39:07   PASS  virt_timer_floor  (4s)
15:39:07   RUN   virt_readonly_copyout
15:39:07   BUILD aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout
15:39:08   PASS  virt_user_mode  (4s)
15:39:08   RUN   virt_ring0_timer_in_syscall
15:39:08   BUILD aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall
15:39:10   PASS  screen_fatal_behind_a_painter  (14s)
15:39:10   RUN   virt_mask_windows
15:39:10   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows
15:39:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:10 [build-lock] waiting for the artifact lock (artifact staging) — held, but the holder left no readable note
15:39:10 [build-lock] artifact staging acquired after 252.3ms
15:39:10   BUILT aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch  (3s)
15:39:10 [build-lock] artifact staging acquired after 625.2ms
15:39:10   BUILT aarch64 ROOT of tests/virtjobcase, for virt_debug_refused  (3s)
15:39:11 [build-lock] artifact staging acquired after 883.9ms
15:39:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_fp_isolation  (4s)
15:39:11 [build-lock] artifact staging acquired after 1.1s
15:39:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_first_entry  (4s)
15:39:11 [build-lock] artifact staging acquired after 1.1s
15:39:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout  (4s)
15:39:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (4s)
15:39:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall  (3s)
15:39:12   [panic] the fatal report is on the panel and sealed in the black box (14262 bytes)
15:39:12   PASS  screen_fatal_halt_composited  (12s)
15:39:12   RUN   virt_smp
15:39:13   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows  (4s)
15:39:13   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows
15:39:13   [iommu] declined: [ 7.813 cpu0 kernel] virtio-sound: NOT INITIALISED — PCI 00:04.0 refused the feature set 0x100000000 the driver accepted, leaving DEVICE_STATUS=0x3 without FEATURES_OK
15:39:13   PASS  iommu_virtio_platform  (36s)
15:39:13   RUN   virt_el1_smp
15:39:15   [virt] [ 4.923 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:15   PASS  virt_unmap_touch  (8s)
15:39:15   RUN   virt_failed_ap_leaves_no_hole
15:39:15   [virt] [ 4.617 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
15:39:15   PASS  virt_fp_isolation  (8s)
15:39:15   RUN   virt_fatal_halts_the_others_first
15:39:15   BUILD aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first
15:39:16   [virt] [ 4.194 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 1306702 and 4825094
15:39:16   PASS  virt_timer_preempts  (5s)
15:39:16   RUN   virt_reboot
15:39:16   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot
15:39:16   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows  (3s)
15:39:16   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_smp
15:39:16   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
15:39:16   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp
15:39:16   BUILD aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows
15:39:16   [virt] [ 4.761 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
15:39:16   PASS  virt_first_entry  (9s)
15:39:16   RUN   virt_off_names_the_cpus_left_on
15:39:16   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on
15:39:17   [virt] [ 5.654 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
15:39:17   PASS  virt_debug_refused  (6s)
15:39:17   RUN   virt_reboot_refused_without_psci
15:39:17   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci
15:39:18   [virt] [ 6.423 test-runner pid=18] a syscall writes only where its caller could store
15:39:18   PASS  virt_readonly_copyout  (7s)
15:39:18   [virt] [ 6.402 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
15:39:18   PASS  virt_ring0_timer_in_syscall  (7s)
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:20 [build-lock] artifact staging acquired after 399.9ms
15:39:20   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot  (5s)
15:39:21 [build-lock] artifact staging acquired after 589.9ms
15:39:21 [build-lock] artifact staging acquired after 566.5ms
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21   BUILT aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first  (5s)
15:39:21 [build-lock] artifact staging acquired after 692.6ms
15:39:21 [build-lock] artifact staging acquired after 456.4ms
15:39:21   BUILD aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first
15:39:21 [build-lock] artifact staging acquired after 405.8ms
15:39:21 [build-lock] artifact staging acquired after 109.2ms
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 10399 (artifact staging), 0s so far
15:39:21 [build-lock] artifact staging acquired after 388.8ms
15:39:21   BUILT aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows  (5s)
15:39:21 [build-lock] artifact staging acquired after 607.7ms
15:39:21   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci  (5s)
15:39:21 [build-lock] artifact staging acquired after 518.6ms
15:39:21   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (5s)
15:39:21   [disk] after the reboot /home/kept-10399-1791560331107744000/release is the 10 lines of /system/etc/os-release, and /log/2026-10-09-153903.log: test-runner said kept-10399-1791560331107744000
15:39:21   PASS  nvme_disk_keeps_log_and_home  (31s)
15:39:21 [build-lock] artifact staging acquired after 728.0ms
15:39:21   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on  (5s)
15:39:22 [build-lock] artifact staging acquired after 914.7ms
15:39:22   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp  (6s)
15:39:22   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_smp  (6s)
15:39:24   BUILT aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first  (3s)
15:39:25   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
15:39:25   PASS  virt_reboot  (5s)
15:39:26   [virt] [23.598 cpu0 kernel] irq-storm: PASS sgis=4659194/4659194 ticks=1000: the timer fired through the flood, and every SGI sent was taken
15:39:26   PASS  virt_irq_storm  (24s)
15:39:26   [virt] reboot: this machine has no reset this kernel performs — refused, and the job ended exit 1
15:39:26   PASS  virt_reboot_refused_without_psci  (5s)
15:39:27   [virt] [ 5.387 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:27   [virt] [ 5.122 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:27   [windows] cpu0 irqs_off_ns=76700000 preempt_off_ns=165010000
15:39:27   [windows] cpu1 irqs_off_ns=67784000 preempt_off_ns=10717000
15:39:27   [windows] cpu2 irqs_off_ns=34221000 preempt_off_ns=11362000
15:39:27   [windows] cpu3 irqs_off_ns=13639000 preempt_off_ns=42352000
15:39:27   [windows] cpu4 irqs_off_ns=2197000 preempt_off_ns=6755000
15:39:27   [windows] cpu5 irqs_off_ns=1361000 preempt_off_ns=27976000
15:39:27   [windows] cpu6 irqs_off_ns=62736000 preempt_off_ns=59941000
15:39:27   [windows] cpu7 irqs_off_ns=73582000 preempt_off_ns=58801000
15:39:27   PASS  virt_mask_windows  (6s)
15:39:27   [virt] [ 5.244 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:27   [virt] 8 CPUs entered at EL1, started through HVC, and scheduling
15:39:28   [virt] [ 5.558 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
15:39:28   [virt] [ 5.651 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
15:39:28   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
15:39:28   PASS  virt_el1_smp  (8s)
15:39:28   [virt] [ 5.582 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:28   [virt] 8 CPUs entered at EL2, started through SMC, and scheduling
15:39:28   [virt] [ 5.769 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
15:39:28   [virt] [ 5.856 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
15:39:28   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
15:39:28   PASS  virt_smp  (10s)
15:39:30   [panic] the fatal path on cpu2 left every other CPU halted with interrupts masked
15:39:30   PASS  virt_fatal_halts_the_others_first  (6s)
15:39:31   [virt] [ 9.574 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:39:31   [virt] a non-last AP never started and the dense machine ran its job
15:39:31   PASS  virt_failed_ap_leaves_no_hole  (10s)
15:39:32   [virt] [6, 7] left on and named; the rest CPU_OFF, then 0x0 SYSTEM_OFF; 3920 PSCI call(s) traced
15:39:32   PASS  virt_off_names_the_cpus_left_on  (11s)
15:39:32   --- 41 guests, 25 of them not the shipping kernel, 3 kernel build(s): ["", "boot-actuators,test-actuators", "mask-windows"]

15:39:32 host: fastest boot 1047 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:39:32 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:39:32 test result: ok. 39 passed, 39 total (62.4s; workers: 215s building, 458s testing)
     Running tests/checks.rs (target/debug/deps/toyos_checks-beafdb68bb96cb55)

running 39 tests
test checks::a_shared_chunk_stages_every_binary_its_members_name ... ok
test checks::a_name_registered_twice_is_refused ... ok
test checks::metal_boots_last_job_is_behind_every_other ... ok
test checks::a_stall_stays_red ... ok
test checks::irq_census_verdict ... ok
test checks::mask_windows_verdict ... ok
test checks::metal_domains_end_below_the_host_bridges ... ok
test checks::metal_claim_spends_one_remapping_entry ... ok
test checks::metal_audio_judges ... ok
test checks::control_regs_verdict ... ok
test checks::a_run_selects_by_filter ... ok
test checks::metal_rows_run_before_members_under_a_bound_the_members_widen ... ok
test checks::metal_list_from_parse_reaches_run_without_the_machine ... ok
test checks::metal_usb_judge ... ok
test checks::metal_words_take_rows_members_and_whole_boots ... ok
test checks::metal_judges_read_the_page_for_what_only_the_page_carries ... ok
test checks::nvme_image_is_held_by_one_guest ... ok
test checks::nested_nmi_verdict ... ok
test checks::psci_power_off_judge ... ok
test checks::run_exit_status ... ok
test checks::screen_decoder ... ok
test checks::serial_vocabulary ... ok
test checks::suspend_invalidates_a_verdict ... ok
test checks::the_c_corpus_stages_the_expectation_the_host_compares ... ok
test checks::the_foreign_record_judge_demands_the_stop_sealed_done ... ok
test checks::the_xecp_judge_reads_the_t14s_handoff ... ok
test checks::metal_name_measured_twice_is_refused ... ok
test checks::suspend_detector ... ok
test checks::metal_boot_that_lost_parts_of_its_log_judges_no_row ... ok
test checks::metal_failing_shared_member_fails_itself_alone ... ok
test checks::metal_cleared_page_owes_no_panel ... ok
test checks::metal_run_under_another_bios_fails_and_records_nothing ... ok
test checks::metal_name_two_owners_measured_is_refused ... ok
test checks::metal_reading_past_its_record_fails_and_moves_nothing ... ok
test checks::metal_stop_owes_its_record_and_leaves_no_operation_open ... ok
test checks::metal_number_fails_with_its_owner_alone ... ok
test checks::metal_loader_kernel_and_program_count_from_one_zero ... ok
test checks::metal_bound_fires_within_one_period_of_itself ... ok
test checks::suite_split ... ok

test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

   Doc-tests toyos_build

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

cargo run -- --ci host at c86a74113 (ci-host-3.log, 6,759 lines): its first line, every [ci] line (each step's header and verdict), and the exit:

head: c86a74113b35630f7ee9f1a32517719eb919abcd
15:39:38 === [ci] the build system
15:39:49 [ci] the build system: cargo test --lib
15:39:49 === [ci] the harness's own checks
15:39:49 [ci] the harness's own checks: cargo test --test toyos-checks
15:39:49 === [ci] the workspace's host members
15:43:48 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update
15:43:48 === [ci] the kernel's library
15:43:48 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check
15:43:48 === [ci] the licences of what ships
15:43:50 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused
15:43:50 === [ci] clippy and the bare targets
15:43:50 [ci] clippy and the bare targets: installed
15:43:50 === [ci] clippy, warnings denied
15:43:59 [ci] clippy, warnings denied: clean
15:43:59 === [ci] kernel-loom without loom
15:44:00 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor
15:44:00 === [ci] control `wake-fence-off`
15:44:01 [ci] control `wake-fence-off`: 1 verdict(s) reached
15:44:01 === [ci] control `lock-acquire-off`
15:44:02 [ci] control `lock-acquire-off`: 1 verdict(s) reached
15:44:02 === [ci] control `owed-fence-off`
15:44:03 [ci] control `owed-fence-off`: 1 verdict(s) reached
15:44:03 === [ci] control `seqlock-writer-fence-off`
15:44:03 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached
15:44:03 === [ci] control `serial-try-lock-then-some`
15:44:03 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached
15:44:03 === [ci] control `reap-raise-relaxed`
15:44:04 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached
15:44:04 === [ci] control `shootdown-serve-relaxed`
15:44:05 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached
15:44:05 === [ci] control `shootdown-served-relaxed`
15:44:06 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached
15:44:06 === [ci] control `roster-commit-relaxed`
15:44:06 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached
15:44:06 === [ci] control `smp-ready-split`
15:44:07 [ci] control `smp-ready-split`: 1 verdict(s) reached
15:44:07 === [ci] control `log-commit-release-off`
15:44:08 [ci] control `log-commit-release-off`: 2 verdict(s) reached
15:44:08 === [ci] control `shard-publish-relaxed`
15:44:09 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached
15:44:09 === [ci] control `log-ring-publish-relaxed`
15:44:09 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached
15:44:09 === [ci] control `log-ring-tail-relaxed`
15:44:09 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached
15:44:09 === [ci] control `log-ring-loads-swapped`
15:44:10 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached
15:44:10 === [ci] control `post-is-an-answer`
15:44:10 [ci] control `post-is-an-answer`: 3 verdict(s) reached
15:44:10 === [ci] control `poll-fire-load-store`
15:44:10 [ci] control `poll-fire-load-store`: 2 verdict(s) reached
15:44:10 === [ci] control `sleeplock-acquire-off`
15:44:11 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached
15:44:11 === [ci] control `device-irq-lossy`
15:44:11 [ci] control `device-irq-lossy`: 1 verdict(s) reached
15:44:11 === [ci] control `dump-report-relaxed`
15:44:11 [ci] control `dump-report-relaxed`: 1 verdict(s) reached
15:44:11 === [ci] control `no-preempt-guard`
15:44:12 [ci] control `no-preempt-guard`: 1 verdict(s) reached
15:44:12 === [ci] control `doorbell-kick-relaxed`
15:44:12 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached
15:44:12 === [ci] control `push-fence-relaxed`
15:44:12 [ci] control `push-fence-relaxed`: 1 verdict(s) reached
15:44:12 === [ci] control `commit-ignores-notify`
15:44:13 [ci] control `commit-ignores-notify`: 2 verdict(s) reached
15:44:13 === [ci] control `notify-flag-load-only`
15:44:16 [ci] control `notify-flag-load-only`: 1 verdict(s) reached
15:44:16 === [ci] control `gate-fence-off`
15:44:16 [ci] control `gate-fence-off`: 1 verdict(s) reached
15:44:16 === [ci] control `poll-fire-load-store`
15:44:16 [ci] control `poll-fire-load-store`: 3 verdict(s) reached
15:44:16 === [ci] control `fault-posted-before-it-is-set`
15:44:17 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached
15:44:17 === [ci] control `victim-retires-mid-probe`
15:44:17 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached
15:44:17 === [ci] control `counting-allocator`
15:44:18 [ci] control `counting-allocator`: 2 verdict(s) reached
15:44:18 === [ci] control `mutate-spawn-skips-the-insert-recheck`
15:44:19 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached
15:44:19 === [ci] control `mutate-claim-teardown-always-wins`
15:44:19 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached
15:44:19 === [ci] control `mutate-kill-waits-for-its-victims`
15:44:20 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached
15:44:20 === [ci] control `mutate-first-out-tears-down`
15:44:20 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached
15:44:20 === [ci] control `mutate-join-collects-in-a-teardown`
15:44:21 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached
15:44:21 === [ci] control `mutate-last-out-leaves-before-its-teardown`
15:44:21 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached
15:44:21 === [ci] control `mutate-place-skips-the-insert-recheck`
15:44:22 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached
15:44:22 === [ci] control `mutate-refused-spawn-keeps-the-count`
15:44:22 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached
15:44:22 === [ci] control `mutate-landed-child-retires-nothing`
15:44:22 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached
15:44:22 === [ci] control `mutate-publish-before-the-children`
15:44:23 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached
15:44:23 === [ci] control `mutate-walk-in-one-hold`
15:44:23 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached
15:44:23 === [ci] control `mutate-spawner-handle-after-the-landing`
15:44:23 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached
15:44:23 === [ci] control `mutate-spawner-handle-before-the-childs-own`
15:44:24 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached
15:44:24 === [ci] control `placement-ignores-staleness`
15:44:24 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached
15:44:24 === [ci] control `mutate-session-end-forgets`
15:44:31 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached
15:44:31 === [ci] control `mutate-abort-keeps-inflight`
15:44:31 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached
15:44:31 === [ci] control `mutate-no-reissue-after-loss`
15:44:31 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached
15:44:31 === [ci] control `publish-relaxed`
15:44:32 [ci] control `publish-relaxed`: 1 verdict(s) reached
15:44:32 === [ci] control `no-clamp`
15:44:32 [ci] control `no-clamp`: 1 verdict(s) reached
15:44:32 === [ci] control `end-keeps-inflight`
15:44:32 [ci] control `end-keeps-inflight`: 1 verdict(s) reached
15:44:32 === [ci] userland/acpiserver
15:44:32 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml
15:44:32 === [ci] userland/acpiserver/aml
15:44:33 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml
15:44:33 === [ci] userland/calc
15:44:34 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml
15:44:34 === [ci] userland/compositor/desktop
15:44:34 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml
15:44:34 === [ci] userland/diskserver
15:44:34 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml
15:44:34 === [ci] userland/fileserver
15:44:35 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml
15:44:35 === [ci] userland/logkeeper
15:44:35 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml
15:44:35 === [ci] userland/netstack
15:44:35 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml
15:44:35 === [ci] userland/netstack/mdns
15:44:36 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml
15:44:36 === [ci] userland/netstack/node
15:44:36 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml
15:44:36 === [ci] userland/pkg
15:44:37 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml
15:44:37 === [ci] userland/soundserver
15:44:37 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml
15:44:37 === [ci] userland/soundserver/mixer
15:44:39 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml
15:44:39 === [ci] userland/sshserver
15:44:40 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml
15:44:40 === [ci] userland/symbolize
15:44:40 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml
15:44:40 === [ci] the apps for linux
15:44:43 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:44:43 === [ci] the apps for macos
15:44:46 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:44:46 === [ci] the apps for windows
15:44:49 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:44:49 === [ci] the toyos SDK
15:44:49 [ci] the toyos SDK: cargo test -p toyos
15:44:49 === [ci] nothing left in $TMPDIR or /tmp
15:44:49 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
15:44:49 [ci] Host: 78 step(s), all green
EXIT=0

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

cargo run -- --build-only at c86a74113, whole (build-only-2.log). Incremental: the first build, at d63234cb9 (build-only-1.log, EXIT=0), is the one that built ring for the host and ran doom's build script, which fetched doomgeneric through the new agent; its ring, doom and cert.pem lines are below this one.

head: c86a74113b35630f7ee9f1a32517719eb919abcd
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.21s
     Running `target/debug/toyos-build --build-only`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.85s
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.29s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
   Compiling doom v0.1.0 (<dev>/toyos-tls/userland/doom)
    Finished `toyos` profile [optimized + debuginfo] target(s) in 6.78s
warning: the following packages contain code that will be rejected by a future version of Rust: winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
15:54:05 root: adding 'bin/acpiserver' (1003632 bytes)
15:54:05 root: adding 'bin/calc' (1285944 bytes)
15:54:05 root: adding 'bin/compositor' (2580912 bytes)
15:54:05 root: adding 'bin/diskserver' (753712 bytes)
15:54:05 root: adding 'bin/doom' (1830312 bytes)
15:54:05 root: adding 'bin/editor' (788048 bytes)
15:54:05 root: adding 'bin/filepicker' (741320 bytes)
15:54:05 root: adding 'bin/files' (2392768 bytes)
15:54:05 root: adding 'bin/fileserver' (1464040 bytes)
15:54:05 root: adding 'bin/host' (565256 bytes)
15:54:05 root: adding 'bin/inspect' (722032 bytes)
15:54:05 root: adding 'bin/logkeeper' (910696 bytes)
15:54:05 root: adding 'bin/netstack' (1057968 bytes)
15:54:05 root: adding 'bin/paint' (733480 bytes)
15:54:05 root: adding 'bin/pkg' (810200 bytes)
15:54:05 root: adding 'bin/proctest' (686112 bytes)
15:54:05 root: adding 'bin/shell' (791728 bytes)
15:54:05 root: adding 'bin/snake' (997656 bytes)
15:54:05 root: adding 'bin/soundserver' (916656 bytes)
15:54:05 root: adding 'bin/sshserver' (4798408 bytes)
15:54:05 root: adding 'bin/supervisor' (1299488 bytes)
15:54:05 root: adding 'bin/swap' (708328 bytes)
15:54:05 root: adding 'bin/symbolize' (692880 bytes)
15:54:05 root: adding 'bin/terminal' (810304 bytes)
15:54:05 root: adding 'bin/toybox' (1105968 bytes)
15:54:05 root: adding 'bin/trace' (563120 bytes)
15:54:05 root: adding 'bin/update' (795488 bytes)
15:54:05 root: adding 'etc/os-release' (287 bytes)
15:54:05 root: adding 'etc/ssl/cert.pem' (181603 bytes)
15:54:05 root: adding 'etc/system.manifest' (2912 bytes)
15:54:05 root: adding 'share/doom1.wad' (4196020 bytes)
15:54:05 root: adding 'share/fonts/JetBrainsMono-Regular-8x16.font' (66404 bytes)
15:54:05 root: adding 'share/fonts/ofl.txt' (4216 bytes)
15:54:05 root: adding 'share/fonts/opensans-bold.ttf' (147264 bytes)
15:54:05 root: adding 'share/fonts/opensans-bolditalic.ttf' (153308 bytes)
15:54:05 root: adding 'share/fonts/opensans-italic.ttf' (153256 bytes)
15:54:05 root: adding 'share/fonts/opensans-regular.ttf' (147528 bytes)
15:54:05 root: adding 'share/hello.rs' (55 bytes)
15:54:05 root: adding 'share/icons/arrow-down-right-bold.svg' (211 bytes)
15:54:05 root: adding 'share/icons/crosshair-simple-bold.svg' (809 bytes)
15:54:05 root: adding 'share/icons/cursor-bold.svg' (560 bytes)
15:54:05 root: adding 'share/icons/file-bold.svg' (293 bytes)
15:54:05 root: adding 'share/icons/folder-bold.svg' (303 bytes)
15:54:05 root: adding 'share/icons/minus-bold.svg' (253 bytes)
15:54:05 root: adding 'share/icons/square-bold.svg' (264 bytes)
15:54:05 root: adding 'share/icons/x-bold.svg' (392 bytes)
15:54:05 root: adding 'share/soundfont.sf2' (15546764 bytes)
15:54:05 root: adding 'share/wallpaper.rgb' (6220808 bytes)
15:54:05 root: symlink 'bin/cat' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/cp' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/echo' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/free' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/grep' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/hexdump' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/locale' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/ls' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/mkdir' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/mv' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/net' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/ps' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/pwd' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/reboot' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/rm' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/screen' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/shutdown' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/spin' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/stats' -> '/system/bin/toybox'
15:54:05 root: symlink 'bin/tone' -> '/system/bin/toybox'
15:54:05 Signed with this checkout's throwaway key SHA256:x1XWYKTedh30nJSbvStJneER7AuHN0sD3QcvtCJirXE at version 1791561232
15:54:06 Build finished.
Boot image: <dev>/toyos-tls/target/bootable.img
EXIT=0

build-only-1.log, its head, those lines and its end:

    Finished `dev` profile [optimized + debuginfo] target(s) in 0.93s
83:   Compiling ring v0.17.14 (https://github.com/ToyOSOrg/ring?branch=toyos-0.17.14#34818c45)
230:   Compiling doom v0.1.0 (<dev>/toyos-tls/userland/doom)
312:15:16:30 root: adding 'etc/ssl/cert.pem' (181603 bytes)
353:15:16:32 Build finished.
355:EXIT=0

@Japabu

Japabu commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

What issues/a-guest-close-after-a-refused-handshake-can-leave-its-peer-waiting.md rests on.

The experiment: https_fetch on the working tree before its first commit (019215c4b; base a944746d5), whose server then reported only a connection's end, with a temporary patch, never committed, that waited up to 180 s for each server's next connection to end and printed what it saw (the server then reported only a connection's end). Its [experiment] lines are at the end; the whole log:

experiment-close-wait.log
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 19.31s
     Running tests/toyos.rs (target/debug/deps/toyos_build-e7145dbc1378f12a)

14:44:44 running 1 tests, 12 wide

14:44:44   RUN   https_fetch
14:44:44   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.34s
14:44:49   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (5s)
14:44:49   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.73s
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.38s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.29s
14:44:56 root: adding 'bin/diskserver' (753712 bytes)
14:44:56 root: adding 'bin/fileserver' (1464040 bytes)
14:44:56 root: adding 'bin/logkeeper' (910696 bytes)
14:44:56 root: adding 'bin/netstack' (1057912 bytes)
14:44:56 root: adding 'bin/supervisor' (1299544 bytes)
14:44:56 root: adding 'bin/test-runner' (700240 bytes)
14:44:56 root: adding 'bin/test_rs_https_get' (3515672 bytes)
14:44:56 root: adding 'etc/os-release' (295 bytes)
14:44:56 root: adding 'etc/ssl/cert.pem' (182214 bytes)
14:44:56 root: adding 'etc/system.manifest' (518 bytes)
14:44:56   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (6s)
14:44:56 [qemu 0] Launching QEMU...
14:45:08 [serial 0] [--.--- cpu0 kernel] black box: 0x8000000 is this boot's, 16344 bytes for the next boot's loader
14:45:08 [serial 0] [--.--- cpu0 kernel] serial: 16550 loopback read 0xae (present)
14:45:08 [serial 0] [--.--- cpu0 kernel] PAT: IA32_PAT=0x0007040100070406, entry 4 = WC
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: memory map 0x7c4fa018+0xc30, kernel 0x7ae00000+0xd19000, stack image+0x519000+0x800000
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: kernel elf 0x7cf0b018+0x2581b0, rsdp 0x7f77e014, boot pml4 0x7c4fd000
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: gop 0x0+0x0 0x0 stride 0 format 0
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: boot partition present=1 lba 264192 +69632 blocks guid [27, ae, 2b, 4d, 31, 18, f2, 48, a0, e3, a8, 2d, cc, ce, 22, 1c]
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: log partition guid [a2, 68, 04, d9, ef, 53, c3, 43, b5, 72, 55, 29, f3, bc, 2d, fd]
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: cmdline 0x7d164c98+68
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: root=c4cf30a6b4ab7734dc445eb59a98412d
14:45:08 [serial 0] [--.--- cpu0 kernel] boot: slot A, the one the slot table marks
14:45:08 [serial 0] [--.--- cpu0 kernel] pmm: the firmware map calls 4288393216 bytes usable in 114 entries; managed=4236247040 withheld=23068672 unaligned=29077504, and the three sum to it; frames=2020 reserved_frames=11 base=0x200000 span=3071
14:45:08 [serial 0] [--.--- cpu0 kernel] paging: the direct map covers 0x0..0x180000000
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: APIC at 0x7f778000 len=128 rev=3 oem="BOCHS" checksummed
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: FACP at 0x7f779000 len=244 rev=3 oem="BOCHS" checksummed
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0x7f777000 len=56 rev=1 oem="BOCHS" checksummed
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: MCFG at 0x7f776000 len=60 rev=1 oem="BOCHS" checksummed
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: DMAR at 0x7f775000 len=144 rev=1 oem="BOCHS" checksummed
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0x7f77e014
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: MADT cpus=[0, 1]
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: reset register SystemIO 0xcf9 <- 0x0f
14:45:08 [serial 0] [--.--- cpu0 kernel] LAPIC: x2APIC enabled (ID 0)
14:45:08 [serial 0] [--.--- cpu0 kernel] control_regs: cpu0 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
14:45:08 [serial 0] [--.--- cpu0 kernel] idt: 256 vectors, 36 declared, 220 unclaimed, table at 0xffff80007afdf860 limit 0xfff
14:45:08 [serial 0] [--.--- cpu0 kernel] control_regs: no performance request is declared: no HWP (CPUID.6:EAX[7])
14:45:08 [serial 0] [--.--- cpu0 kernel] fpu: cpu0 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
14:45:08 [serial 0] [--.--- cpu0 kernel] percpu: BSP cpu_id=0 lapic_id=0
14:45:08 [serial 0] [--.--- cpu0 kernel] mmio: 0xfec00000+0x20 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [--.--- cpu0 kernel] ioapic: id=0 at 0xfec00000 ver=0x20 gsi 0..23 masked 24/24
14:45:08 [serial 0] [--.--- cpu0 kernel] ioapic: iso bus:irq->gsi [0:0->2 edge/high, 0:5->5 level/high, 0:9->9 level/high, 0:10->10 level/high, 0:11->11 level/high]
14:45:08 [serial 0] [--.--- cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
14:45:08 [serial 0] [--.--- cpu0 kernel] symbols: loaded 6214 kernel symbols
14:45:08 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0xfed00000
14:45:08 [serial 0] [--.--- cpu0 kernel] mmio: 0xfed00000+0x1000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [--.--- cpu0 kernel] clock: HPET at 0xfed00000 enabled, period=10000000fs, counter reads 803600, calibrating over 5000000 ticks
14:45:08 [serial 0] [10.258 cpu0 kernel] TSC: 998MHz (period=1001540fs, calibrated over 50ms)
14:45:08 [serial 0] [10.259 cpu0 kernel] clock: TSC measured 998462367Hz against the HPET; CPUID leaves 15H and 16H stating no frequency, so nothing independent confirms it
14:45:08 [serial 0] [10.259 cpu0 kernel] ACPI: the FADT puts the RTC century register at CMOS 0x32
14:45:08 [serial 0] [10.260 cpu0 kernel] clock: the RTC reads 2026-10-09 14:45:05 UTC
14:45:08 [serial 0] [10.291 cpu0 kernel] LAPIC timer: 10006562 ticks/10ms, so 1000656200Hz
14:45:08 [serial 0] [10.291 cpu0 kernel] Boot: CPU ready (85ms)
14:45:08 [serial 0] [10.293 cpu0 kernel] ACPI: RSDP at 0x7f77e014
14:45:08 [serial 0] [10.293 cpu0 kernel] ACPI: MCFG found at 0x7f776000
14:45:08 [serial 0] [10.294 cpu0 kernel] ACPI: ECAM base address: 0xe0000000
14:45:08 [serial 0] [10.294 cpu0 kernel] mmio: 0xe0000000+0x10000000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [10.295 cpu0 kernel] PCI: Enumerating devices...
14:45:08 [serial 0] [10.296 cpu0 kernel]   PCI 00:00.0 [0600] vendor=8086 device=29c0 prog_if=00 bars=[]
14:45:08 [serial 0] [10.297 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0xc00000c000]
14:45:08 [serial 0] [10.297 cpu0 kernel]   PCI 00:02.0 [0108] vendor=1b36 device=0010 prog_if=02 bars=[bar0=0xc000010000 bar4=0x80044000]
14:45:08 [serial 0] [10.297 cpu0 kernel]   PCI 00:03.0 [0200] vendor=1af4 device=1041 prog_if=00 bars=[bar1=0x80043000 bar4=0xc000000000]
14:45:08 [serial 0] [10.297 cpu0 kernel]   PCI 00:04.0 [0401] vendor=1af4 device=1059 prog_if=00 bars=[bar1=0x80042000 bar4=0xc000004000]
14:45:08 [serial 0] [10.298 cpu0 kernel]   PCI 00:05.0 [0780] vendor=1af4 device=1043 prog_if=00 bars=[bar1=0x80041000 bar4=0xc000008000]
14:45:08 [serial 0] [10.298 cpu0 kernel]   PCI 00:1f.0 [0601] vendor=8086 device=2918 prog_if=00 bars=[]
14:45:08 [serial 0] [10.298 cpu0 kernel]   PCI 00:1f.2 [0106] vendor=8086 device=2922 prog_if=01 bars=[bar4=none(it is an I/O BAR at port 0x6040, not memory) bar5=0x80040000]
14:45:08 [serial 0] [10.298 cpu0 kernel]   PCI 00:1f.3 [0c05] vendor=8086 device=2930 prog_if=00 bars=[bar4=none(it is an I/O BAR at port 0x6000, not memory)]
14:45:08 [serial 0] [10.300 cpu0 kernel] PCI: Enumeration complete, 9 functions.
14:45:08 [serial 0] [10.324 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x80000000..0x80100000, mem 0xc000000000..0xc000100000, mem 0x80100000..0xe0000000, mem 0xc000100000..0xe000000000
14:45:08 [serial 0] [10.329 cpu0 kernel] pcidev: 9 functions; 2 run(s) of 2 MiB or more below 0xfec00000 and 3 from 0x100000000
14:45:08 [serial 0] [10.329 cpu0 kernel] pcidev:   0x80045000..0xe0000000 (1535 MiB)
14:45:08 [serial 0] [10.330 cpu0 kernel] pcidev:   0xf0000000..0xfec00000 (236 MiB)
14:45:08 [serial 0] [10.330 cpu0 kernel] pcidev:   0x180000000..0xc000000000 (780288 MiB)
14:45:08 [serial 0] [10.331 cpu0 kernel] pcidev:   0xc000012000..0xfd00000000 (249855 MiB)
14:45:08 [serial 0] [10.331 cpu0 kernel] pcidev:   0x10000000000..0xffffffffffffffff (17592184995839 MiB)
14:45:08 [serial 0] [10.333 cpu0 kernel] iommu: DMAR haw=48 flags=0x01 intr_remap=y x2apic_opt_out=n dma_ctrl_opt_in=n
14:45:08 [serial 0] [10.335 cpu0 kernel] mmio: 0xfed90000+0x1000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [10.336 cpu0 kernel] iommu: unit0 @0xfed90000 seg=0 pci_all=n ver=1.0 cap=0x80d2008c222f0686 ecap=0x0000000000f00f4a gsts=0x00000000 aw=48 sagaw=0x06 mgaw=48 nd=65536 sps2m=y cm=y psi=y nfr=1 fro=0x220 qi=y ir=y eim=n pt=y coherent=n sc=n
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope ioapic ff:00.0 id=0
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:00.0 id=0
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:01.0 id=0
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:02.0 id=0
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:03.0 id=0
14:45:08 [serial 0] [10.337 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:04.0 id=0
14:45:08 [serial 0] [10.338 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:05.0 id=0
14:45:08 [serial 0] [10.338 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.0 id=0
14:45:08 [serial 0] [10.338 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.2 id=0
14:45:08 [serial 0] [10.338 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.3 id=0
14:45:08 [serial 0] [10.338 cpu0 kernel] iommu: DMAR describes 1 units and 0 reserved regions, 0 of them inside the identity domain
14:45:08 [serial 0] [10.340 cpu0 kernel] iommu: identity domain aw=48 covers 0x0..0x180000000 in 3072 2 MiB leaves
14:45:08 [serial 0] [10.411 cpu0 kernel] iommu: unit0 @0xfed90000 translating gsts=0xc7000000 tes=y qies=y ires=y cfis=n irt=0xc0c000 irta=0xc0c007 eime=n root=0xc08000 domain=1 aw=48 streams=9
14:45:08 [serial 0] [10.412 cpu0 kernel] file cache: budget 16160 pages (63 MiB)
14:45:08 [serial 0] [10.413 cpu0 kernel] gpt: the boot volume names D90468A2-53EF-43C3-B572-5529F3BC2DFD as the log partition
14:45:08 [serial 0] [10.413 cpu0 kernel] gpt: firmware booted us from partition 4D2BAE27-1831-48F2-A0E3-A82DCCCE221C at LBA 264192+69632
14:45:08 [serial 0] [10.414 cpu0 kernel] Boot: peripherals ready (120ms)
14:45:08 [serial 0] [10.415 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
14:45:08 [serial 0] [10.428 cpu1 kernel] control_regs: cpu1 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
14:45:08 [serial 0] [10.428 cpu1 kernel] fpu: cpu1 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
14:45:08 [serial 0] [10.429 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
14:45:08 [serial 0] [10.432 cpu0 kernel] SMP: cpu1 tsc=10411658000 inside the BSP's 10400230000..10416038000 (15808000 cycles wide)
14:45:08 [serial 0] [10.453 cpu0 kernel] SMP: AP cpu1 lapic=1 online
14:45:08 [serial 0] [10.457 cpu0 kernel] SMP: 2 of 2 MADT cpus online, 1 of 1 APs inside the BSP's TSC bracket
14:45:08 [serial 0] [10.457 cpu0 kernel] control_regs: 2 of 2 cpus hold cr0=0x80010033 cr4=0x00300668 efer=0x0901
14:45:08 [serial 0] [10.459 cpu0 kernel] root: mounted read-only from memory at 0x7c50b000+0xa00000, filesystem c4cf30a6b4ab7734dc445eb59a98412d, 2560 blocks
14:45:08 [serial 0] [10.461 cpu0 kernel] Boot: subsystems ready (46ms)
14:45:08 [serial 0] [10.504 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=6ms relocs=0ms deps=0ms tls=28ms total=40ms)
14:45:08 [serial 0] [10.505 cpu0 kernel] spawned /system/bin/supervisor pid=0
14:45:08 [serial 0] [10.523 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
14:45:08 [serial 0] [10.523 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
14:45:08 [serial 0] [10.523 cpu0 kernel] xHCI: BAR0=0xc00000c000
14:45:08 [serial 0] [10.524 cpu0 kernel] iommu: irte4 source=00:01.0 p=1 sid=0x0008 svt=1 sq=0 vector=0x21 apic=0x0 dst=0x0 trigger=edge
14:45:08 [serial 0] [10.524 cpu0 kernel] mmio: 0xc00000f000+0x1000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [10.525 cpu0 kernel] PCI 00:01.0: msix address=0xfee00098 data=0x00000000
14:45:08 [serial 0] [10.525 cpu0 kernel] xHCI: MSI-X enabled (vector 0x21)
14:45:08 [serial 0] [10.525 cpu0 kernel] mmio: 0xc00000c000+0x10000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [10.525 cpu0 kernel] xHCI: max_slots=64 max_ports=8 ctx_size=32 pagesize=0x1
14:45:08 [serial 0] [10.526 cpu0 kernel] xHCI: dma 2048 KiB: scratchpad=0 device blocks=64 of 12288 B (max_slots=64)
14:45:08 [serial 0] [10.526 cpu0 kernel] xHCI: no USB Legacy Support capability (xECP=0x8), nothing to hand over
14:45:08 [serial 0] [10.526 cpu0 kernel] xHCI: USB 2.0 on ports 5..=8
14:45:08 [serial 0] [10.526 cpu0 kernel] xHCI: USB 3.0 on ports 1..=4
14:45:08 [serial 0] [10.527 cpu0 kernel] xHCI: 4 USB2 and 4 USB3 port register(s) of 8 named, 0 capability(ies) refused
14:45:08 [serial 0] [10.532 cpu0 kernel] xHCI: controller reset
14:45:08 [serial 0] [10.532 cpu0 kernel] iommu: domain2 root=0xc0d000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
14:45:08 [serial 0] [10.535 cpu0 kernel] iommu: domain2 maps 0x1a00000..0x1c00000 at 0x400000000000
14:45:08 [serial 0] [10.535 cpu0 kernel] iommu: 00:01.0 moves to domain2
14:45:08 [serial 0] [10.536 cpu0 kernel] xHCI: controller started
14:45:08 [serial 0] [10.544 cpu0 kernel] xHCI: 8/8 root-hub ports powered (PPC=0)
14:45:08 [serial 0] [10.647 cpu0 kernel] xHCI: port 5 connected
14:45:08 [serial 0] [10.649 cpu0 kernel] xHCI: port 5 enabled, speed=3
14:45:08 [serial 0] [10.650 cpu0 kernel] xHCI: slot 1 enabled (dma +0x30000)
14:45:08 [serial 0] [10.655 cpu0 kernel] xHCI: device addressed
14:45:08 [serial 0] [10.655 cpu0 kernel] xHCI: device class=0x0 vendor=0627 product=0001
14:45:08 [serial 0] [10.656 cpu0 kernel] xHCI: HID keyboard iface=0 ep=0x81 max_pkt=8 interval=7 dci=3
14:45:08 [serial 0] [10.669 cpu0 kernel] xHCI: configuration set
14:45:08 [serial 0] [10.674 cpu0 kernel] xHCI: endpoint configured
14:45:08 [serial 0] [10.675 cpu0 kernel] xHCI: USB keyboard ready on slot 1, int_ring +0x30000
14:45:08 [serial 0] [10.676 cpu0 kernel] xHCI: 1 controller(s), 1 HID device(s)
14:45:08 [serial 0] [10.676 cpu0 kernel] usb-storage: 0 device(s)
14:45:08 [serial 0] [12.177 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
14:45:08 [serial 0] [12.179 cpu0 kernel] root: the partition ROOT was read from, 11DD6923-C59F-4121-A476-2FBF40CC915C, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
14:45:08 [serial 0] [12.179 cpu0 kernel] Boot: storage ready (1656ms)
14:45:08 [serial 0] [12.181 cpu0 kernel] i8042: FADT rev 3 iapc_boot_arch=0x0002, bit 1 (8042) set — probing either way
14:45:08 [serial 0] [12.181 cpu0 kernel] i8042: ok selftest=0x55 cfg=0x77->0x64 port1=ok port2=ok
14:45:08 [serial 0] [12.182 cpu0 kernel] iommu: irte5 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
14:45:08 [serial 0] [12.182 cpu0 kernel] ioapic: gsi 1 on id=0 rte=0x000b000000010024
14:45:08 [serial 0] [12.182 cpu0 kernel] iommu: irte6 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
14:45:08 [serial 0] [12.183 cpu0 kernel] ioapic: gsi 12 on id=0 rte=0x000d000000010024
14:45:08 [serial 0] [12.183 cpu0 kernel] i8042: kbd set2+xlat (readback 0x41) scanning on, GSI 1 -> vec 0x24 apic 0 on
14:45:08 [serial 0] [12.183 cpu0 kernel] i8042: aux rate=100 res=8/mm, GSI 12 -> vec 0x24 apic 0 on
14:45:08 [serial 0] [12.185 cpu0 kernel] acpi: the ACPI row: PM1a events 0x600+4, GPE0 0x620+16, SCI gsi 9 level/high, the fixed-hardware power button, embedded controller none (the ECDT is unusable: Absent); the firmware handed over in ACPI mode
14:45:08 [serial 0] [12.185 cpu0 kernel] acpi: the Global Lock is the FACS's at 0x7f7dd010, in memory the firmware's map types 10
14:45:08 [serial 0] [12.186 cpu0 kernel] virtio-console: found at PCI 00:05.0
14:45:08 [serial 0] [12.186 cpu0 kernel] iommu: domain3 root=0xc10000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
14:45:08 [serial 0] [12.220 cpu0 kernel] iommu: domain3 maps 0x1c00000..0x1e00000 at 0x400000000000
14:45:08 [serial 0] [12.221 cpu0 kernel] iommu: 00:05.0 moves to domain3
14:45:08 [serial 0] [12.241 cpu0 kernel] VirtIO: PCI 00:05.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
14:45:08 [serial 0] [12.243 cpu0 kernel] mmio: 0xc000008000+0x4000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.245 cpu0 kernel] VirtIO: PCI 00:05.0 features device=0x10330000004 negotiated=0x300000000 access_platform=y
14:45:08 [serial 0] [12.261 cpu0 kernel] virtio-console: initialized (8 RX bufs of 256 bytes, TX buf 4096 bytes)
14:45:08 [serial 0] [12.262 cpu0 kernel] virtio-sound: found at PCI 00:04.0
14:45:08 [serial 0] [12.262 cpu0 kernel] VirtIO: PCI 00:04.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
14:45:08 [serial 0] [12.263 cpu0 kernel] mmio: 0xc000004000+0x4000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.264 cpu0 kernel] VirtIO: PCI 00:04.0 features device=0x10379000000 negotiated=0x300000000 access_platform=y
14:45:08 [serial 0] [12.264 cpu0 kernel] virtio-sound: 0 jacks, 1 streams, 0 chmaps
14:45:08 [serial 0] [12.264 cpu0 kernel] iommu: domain4 root=0xc13000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
14:45:08 [serial 0] [12.265 cpu0 kernel] iommu: domain4 maps 0x1e00000..0x2000000 at 0x400000000000
14:45:08 [serial 0] [12.267 cpu0 kernel] iommu: domain4 maps 0x2000000..0x2200000 at 0x400000200000
14:45:08 [serial 0] [12.267 cpu0 kernel] iommu: 00:04.0 moves to domain4
14:45:08 [serial 0] [12.269 cpu0 kernel] iommu: irte7 source=00:04.0 p=1 sid=0x0020 svt=1 sq=0 vector=0x23 apic=0x0 dst=0x0 trigger=edge
14:45:08 [serial 0] [12.269 cpu0 kernel] mmio: 0x80042000+0x1000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.269 cpu0 kernel] PCI 00:04.0: msix address=0xfee000f8 data=0x00000000
14:45:08 [serial 0] [12.269 cpu0 kernel] virtio-sound: MSI-X vector 0x23 on table entry 0
14:45:08 [serial 0] [12.270 cpu0 kernel] virtio-sound: bound, 8 periods of 512 bytes, doorbells at 0x0/0x4/0x8
14:45:08 [serial 0] [12.270 cpu0 kernel] GPU: none found, running headless
14:45:08 [serial 0] [12.271 cpu0 kernel] Boot: devices ready (90ms)
14:45:08 [serial 0] [12.274 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
14:45:08 [serial 0] [12.274 cpu0 kernel] Boot: complete (2068ms)
14:45:08 [serial 0] [12.276 cpu0 kernel] boot: IA32_TSC_ADJUST not on this CPU
14:45:08 [serial 0] [12.277 cpu0 kernel] boot: power-on to loader 8738 ms, loader 1320 ms (ROOT read 19 ms), kernel to Boot: complete 2214 ms
14:45:08 [serial 0] [12.278 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
14:45:08 [serial 0] [12.279 cpu1 kernel] counters: cpu1 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
14:45:08 [serial 0] [12.279 cpu1 kernel] CPU 1: joining scheduler
14:45:08 [serial 0] [12.290 cpu1 kernel] i8042: armed at 1977ms, idle at 2084ms, 0 interrupts — the pin has never asserted (kbd GSI 1, aux GSI 12)
14:45:08 [serial 0] [12.477 cpu0 kernel] iommu: domain5 root=0xc16000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
14:45:08 [serial 0] [12.477 cpu0 kernel] iommu: irte0 source=00:02.0 p=1 sid=0x0010 svt=1 sq=0 vector=0x28 apic=0x0 dst=0x0 trigger=edge
14:45:08 [serial 0] [12.477 cpu0 kernel] mmio: 0x80044000+0x1000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.477 cpu0 kernel] PCI 00:02.0: msix address=0xfee00018 data=0x00000000
14:45:08 [serial 0] [12.482 cpu0 kernel] mmio: 0xc000010000+0x2000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.485 cpu0 kernel] mmio: 0xc000200000+0x200000 PAT Uncacheable (MTRR UC)
14:45:08 [serial 0] [12.485 cpu0 kernel] pcidev: PCI 00:02.0 BAR 0 (0x2000 bytes) placed at 0xc000200000 — inside firmware's mem 0xc000100000; its +0x0 dword answers 0x0f0107ff there, and answered 0x0f0107ff from 0xc000010000, where firmware put it
14:45:08 [serial 0] [12.485 cpu0 kernel] iommu: 00:02.0 moves to domain5
14:45:08 [serial 0] [12.486 cpu0 kernel] pcidev: PCI 00:02.0 [1b36:0010] handed over on slot 0, vector 0x28
14:45:08 [serial 0] [12.512 cpu0 kernel] spawn: /system/bin/diskserver pid=2 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=3ms total=7ms)
14:45:08 [serial 0] [12.528 cpu1 kernel] shm: 0xc000200000 mapped Uncacheable into pid 2
14:45:08 [serial 0] [12.530 cpu1 kernel] iommu: domain5 maps 0x4200000..0x4400000 at 0x400002000000
14:45:08 [serial 0] [12.548 cpu1 kernel] pcidev: slot 0 took its first message on vector 0x28
14:45:09 [serial 0] [12.599 cpu0 kernel] spawn: /system/bin/fileserver pid=3 unresolved=0 (layout=3ms relocs=0ms deps=0ms tls=7ms total=12ms)
14:45:09 [serial 0] [12.682 cpu0 kernel] spawn: /system/bin/fileserver pid=4 unresolved=0 (layout=3ms relocs=0ms deps=0ms tls=6ms total=22ms)
14:45:09 [serial 0] [12.729 cpu0 kernel] spawn: /system/bin/fileserver pid=5 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=3ms total=6ms)
14:45:09 [serial 0] [13.182 cpu0 kernel] spawn: /system/bin/logkeeper pid=6 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=6ms total=9ms)
14:45:09 [serial 0] [13.200 cpu0 kernel] iommu: domain6 root=0xc19000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
14:45:09 [serial 0] [13.200 cpu0 kernel] iommu: irte1 source=00:03.0 p=1 sid=0x0018 svt=1 sq=0 vector=0x29 apic=0x0 dst=0x0 trigger=edge
14:45:09 [serial 0] [13.222 cpu0 kernel] mmio: 0x80043000+0x1000 PAT Uncacheable (MTRR UC)
14:45:09 [serial 0] [13.222 cpu0 kernel] PCI 00:03.0: msix address=0xfee00038 data=0x00000000
14:45:09 [serial 0] [13.231 cpu0 kernel] mmio: 0xc000000000+0x4000 PAT Uncacheable (MTRR UC)
14:45:09 [serial 0] [13.248 cpu0 kernel] mmio: 0xc000400000+0x200000 PAT Uncacheable (MTRR UC)
14:45:09 [serial 0] [13.249 cpu0 kernel] pcidev: PCI 00:03.0 BAR 4 (0x4000 bytes) placed at 0xc000400000 — inside firmware's mem 0xc000100000; its +0x4 dword answers 0x00000103 there, and answered 0x00000103 from 0xc000000000, where firmware put it
14:45:09 [serial 0] [13.249 cpu0 kernel] iommu: 00:03.0 moves to domain6
14:45:09 [serial 0] [13.249 cpu0 kernel] pcidev: PCI 00:03.0 [1af4:1041] handed over on slot 1, vector 0x29
14:45:09 [serial 0] [13.304 cpu0 kernel] spawn: /system/bin/netstack pid=7 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=47ms total=50ms)
14:45:09 [serial 0] [13.348 cpu1 kernel] spawn: /system/bin/test-runner pid=8 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=8ms total=10ms)
14:45:09 [serial 0] [13.359 cpu0 kernel] shm: 0xc000400000 mapped Uncacheable into pid 7
14:45:09 [serial 0] [13.360 cpu0 kernel] iommu: domain6 maps 0xfc00000..0xfe00000 at 0x400002000000
14:45:09 [serial 0] [13.457 cpu0 kernel] pcidev: slot 1 took its first message on vector 0x29
14:45:09 [serial 0] [12.368 supervisor] supervisor: build a944746d5b0e3bbbb5ed91686c80545bc63cc369 dirty, committed 2026-10-09 13:32:57 UTC, toolchain bc7e876cc60df9b3, x86_64
14:45:09 [serial 0] [12.548 supervisor] supervisor: started diskserver
14:45:09 [serial 0] [12.569 diskserver] diskserver: NVMe up: 4 I/O queues of 63 commands, volatile write cache present, so a flush issues Flush, 512-byte sectors, 497664 sectors
14:45:09 [serial 0] [12.600 supervisor] supervisor: started fileserver
14:45:09 [serial 0] [12.692 supervisor] supervisor: started fileserver
14:45:09 [serial 0] [12.730 supervisor] supervisor: started fileserver
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition 37EDF065-9F77-4FFB-B21E-7C88B3791A79 at block 256, 32768 blocks
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition 4D2BAE27-1831-48F2-A0E3-A82DCCCE221C at block 33024, 8704 blocks
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition D8C832EC-9250-4AA4-A594-562756CFC167 at block 41728, 256 blocks
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition D90468A2-53EF-43C3-B572-5529F3BC2DFD at block 41984, 8704 blocks
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition E19998B7-CC58-494A-9EF1-4F5DD4FB3951 at block 50688, 8704 blocks
14:45:09 [serial 0] [12.989 diskserver] diskserver: partition 11DD6923-C59F-4121-A476-2FBF40CC915C is the ROOT this machine runs from; refusing every session to it
14:45:09 [serial 0] [13.032 diskserver] diskserver: session 0 opened D90468A2-53EF-43C3-B572-5529F3BC2DFD (8704 blocks)
14:45:09 [serial 0] [13.033 diskserver] diskserver: session 1 opened 4D2BAE27-1831-48F2-A0E3-A82DCCCE221C (8704 blocks)
14:45:09 [serial 0] [13.044 diskserver] diskserver: session 2 opened 37EDF065-9F77-4FFB-B21E-7C88B3791A79 (32768 blocks)
14:45:09 [serial 0] [13.047 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
14:45:09 [serial 0] [13.048 fileserver] fileserver: Boot serving /boot — FAT32 read-only, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
14:45:09 [serial 0] [13.052 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
14:45:09 [serial 0] [13.053 fileserver] fileserver: Log serving /log — FAT32, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
14:45:09 [serial 0] [13.090 fileserver] fileserver: block 0 designates this partition for ToyOS; formatting it
14:45:09 [serial 0] [13.093 fileserver] fileserver: Data serving /apps, /config, /home, /state — bcachefs, 0 names, 0 files open; cache 4 blocks (4 dirty), 6 of 8 reads hit
14:45:09 [serial 0] [13.183 supervisor] supervisor: started logkeeper
14:45:09 [serial 0] [13.323 supervisor] supervisor: started netstack
14:45:09 [serial 0] [13.357 netstack] netstack: this claim answers 4096 bytes of configuration space and refuses every access outside them
14:45:09 [serial 0] [13.358 supervisor] supervisor: started test-runner
14:45:09 [serial 0] [13.360 netstack] netstack: VirtIO: PCI 00:03.0 features device=0x10330bf8024 negotiated=0x300000020 access_platform=y
14:45:09 [serial 0] [13.364 netstack] netstack: MAC 52:54:00:12:34:56
14:45:09 [serial 0] [13.437 test-runner] ===READY===
14:45:09 [serial 0] [13.459 netstack] netstack: DHCP: lease 10.0.2.15/24 from 10.0.2.2, gateway 10.0.2.2, dns [10.0.2.3], 93 ms after netstack came up
14:45:09 [qemu] Reached ===READY===
14:45:09 [serial 0] [13.460 netstack] netstack: ready, at most 103 piped connections (4 MiB each of 4040 MiB total)
14:45:09 [serial 0] [13.465 logkeeper] logkeeper: this boot's kernel log is /log/2026-10-09-144507.log (2026-10-09 14:45:07 UTC)
14:45:10 [serial 0] [14.245 netstack] netstack: mDNS: no host answered for toyos-t14.local; this machine answers as it
14:45:10 [serial 0] [14.363 cpu1 kernel] spawn: /system/bin/test_rs_https_get pid=9 unresolved=0 (layout=4ms relocs=0ms deps=0ms tls=3ms total=9ms)
14:45:10 [serial 0] [14.342 test-runner] ===TEST_START test_rs_https_get===
14:45:11 [serial 0] [14.870 cpu1 kernel] exit: test_rs_https_get pid=9 code=0 cpu=456ms peak=22MB allocs=13 frees=0 syscalls=81 syscall_wall=76ms 0=10 1=12 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=11 72=1 73=1 75=3 76=1 91=1 99=1 102=7 103=1 105=4 106=5
14:45:11 [serial 0] [14.867 test-runner pid=9] https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5
14:45:11 [serial 0] [14.874 test-runner] ===TEST_END test_rs_https_get exit=0===
14:45:11 [serial 0] [14.946 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=10 unresolved=0 (layout=4ms relocs=0ms deps=0ms tls=6ms total=11ms)
14:45:11 [serial 0] [14.934 test-runner] ===TEST_START test_rs_https_get===
14:45:12 [serial 0] [15.665 cpu0 kernel] exit: test_rs_https_get pid=10 code=2 cpu=688ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=103ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
14:45:12 [serial 0] [15.661 test-runner pid=10] https_get: refused not-valid-for-name
14:45:12 [serial 0] [15.666 test-runner] ===TEST_END test_rs_https_get exit=2===
14:45:12 [serial 0] [15.699 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=11 unresolved=0 (layout=4ms relocs=0ms deps=0ms tls=4ms total=9ms)
14:45:12 [serial 0] [15.689 test-runner] ===TEST_START test_rs_https_get===
14:45:12 [serial 0] [16.042 cpu1 kernel] exit: test_rs_https_get pid=11 code=2 cpu=300ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=56ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
14:45:12 [serial 0] [16.041 test-runner pid=11] https_get: refused unknown-issuer
14:45:12 [serial 0] [16.043 test-runner] ===TEST_END test_rs_https_get exit=2===
14:45:12   [experiment] the trusted server after 916ns: Ok(Served { version: Some(TLSv1_3), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] })
14:48:12   [experiment] the server named for another address after 180.004645666s: Err("no connection to port 62612 ended within 180s")
14:48:12   [experiment] the server no root vouches for after 180.004761625s: Ok(Failed(General("unexpected end of file")))
14:48:12 FAIL https_fetch: experiment
14:48:12   FAIL  https_fetch  (196s)
14:48:12   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

14:48:12 host: fastest boot 13529 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
14:48:12 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
14:48:12 failures:
14:48:12     https_fetch: experiment

14:48:12 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (207.8s; workers: 11s building, 196s testing)
14:48:12 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-69070-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-e7145dbc1378f12a https_fetch --nocapture` (exit status: 1)
EXIT=1

The same client and server both on the host (macOS): a scratch crate with tests/common/https.rs and https_get.rs copied in, its main runs https_get against each server over loopback and waits 30 s for what the server saw (hostprobe-run.log):

//! The harness's server and the guest's client, both on this host: what the
//! server sees of each refusal when the client's stack is the host's.
#[path = "https.rs"]
#[allow(dead_code)]
mod https;
use std::process::Command;
use std::sync::Arc;
use std::time::{Duration, Instant};
fn main() {
    let client = std::env::args().nth(1).expect("the https_get binary");
    let trusted = https::Authority::new("t");
    let stranger = https::Authority::new("s");
    let body = Arc::new(https::body());
    let lo: std::net::IpAddr = "127.0.0.1".parse().unwrap();
    let servers = [
        ("trusted", https::Server::start(trusted.leaf(lo), body.clone()).unwrap()),
        ("wrong-name", https::Server::start(trusted.leaf([192, 0, 2, 1].into()), body.clone()).unwrap()),
        ("untrusted", https::Server::start(stranger.leaf(lo), body).unwrap()),
    ];
    let roots = std::env::temp_dir().join(format!("hostprobe-roots-{}.pem", std::process::id()));
    std::fs::write(&roots, trusted.pem()).unwrap();
    for (what, server) in &servers {
        let out = Command::new(&client).arg(format!("https://127.0.0.1:{}/body", server.port)).arg(&roots).output().unwrap();
        let t0 = Instant::now();
        let seen = server.next(Duration::from_secs(30));
        println!("{what}: client {:?} {:?}; server after {:?}: {seen:?}", out.status.code(), String::from_utf8_lossy(&out.stdout).trim(), t0.elapsed());
    }
    std::fs::remove_file(&roots).unwrap();
}
trusted: client Some(0) "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5"; server after 8.959µs: Ok(Served { version: Some(TLSv1_3), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] })
wrong-name: client Some(2) "https_get: refused not-valid-for-name"; server after 7.167µs: Ok(Failed(General("unexpected end of file")))
untrusted: client Some(2) "https_get: refused unknown-issuer"; server after 6.458µs: Ok(Failed(General("unexpected end of file")))

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

What issues/a-netcase-boot-under-host-load-said-nothing-past-the-firmwares-screen-clears.md rests on: the first whole-suite run, cargo test at d63234cb9.

head: d63234cb9fb3b4f3d164aaaa54869644a12baad2
uptime before: 17:24  up 10 days,  5:08, 6 users, load averages: 82.78 94.69 92.31
uptime after: 17:33  up 10 days,  5:17, 6 users, load averages: 36.29 47.59 67.23
EXIT=1

Its harness report from the first RUN (guest-suite-1.raw from line 500):

guest-suite-1.raw, lines 500–end
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:24:51 running 39 tests, 12 wide

15:24:51   RUN   nested_nmi_is_loud
15:24:51   RUN   acpi_mediated_access
15:24:51   RUN   libc_sockets
15:24:51   RUN   acpi_supply_outlives_holder
15:24:51   RUN   acpi_power_button
15:24:51   RUN   https_fetch
15:24:51   RUN   iommu_virtio_platform
15:24:51   RUN   acpi_lock_given_back_on_one_cpu
15:24:51   RUN   netstack_socket_churn
15:24:51   RUN   machine_shutdown
15:24:51   RUN   machine_shutdown_short_stop
15:24:51   BUILD x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop
15:24:51   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
15:24:51   RUN   bar_map_again
15:24:51   BUILD x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again
15:24:51   BUILD x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access
15:24:51   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button
15:24:51   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown
15:24:51   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud
15:24:51   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
15:24:51   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:57   BUILD x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets
15:24:57 [build-lock] artifact staging acquired after 748.5ms
15:24:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:24:58 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:14 [build-lock] artifact staging acquired after 17.7s
15:25:14 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:15   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (23s)
15:25:15 [build-lock] artifact staging acquired after 18.3s
15:25:15   BUILD x86_64 ROOT of tests/netcase, for netstack_socket_churn
15:25:16   BUILT x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access  (24s)
15:25:16 [build-lock] artifact staging acquired after 19.2s
15:25:16 [build-lock] artifact staging acquired after 19.2s
15:25:16   BUILD x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder
15:25:16   BUILD x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu
15:25:16   BUILD x86_64 ROOT of tests/acpicase, for acpi_mediated_access
15:25:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:16   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (25s)
15:25:16 [build-lock] artifact staging acquired after 19.8s
15:25:16   BUILD x86_64 ROOT of tests/netcase, for https_fetch
15:25:16   BUILT x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop  (25s)
15:25:16 [build-lock] artifact staging acquired after 20.0s
15:25:16 [build-lock] artifact staging acquired after 20.0s
15:25:16   BUILD x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop
15:25:17 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:17   BUILT x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again  (26s)
15:25:17 [build-lock] artifact staging acquired after 19.9s
15:25:17   BUILD x86_64 ROOT of tests/testcases, for bar_map_again
15:25:18 [build-lock] artifact staging acquired after 19.3s
15:25:18   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform  (26s)
15:25:18   BUILT x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets  (22s)
15:25:18 [build-lock] artifact staging acquired after 4.1s
15:25:18   BUILD x86_64 ROOT of tests/netcase, for libc_sockets
15:25:19 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:19 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:19 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:19 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:25:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 2s so far
15:25:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 2s so far
15:25:21 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 3s so far
15:25:22 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 4s so far
15:25:29   [iommu] headless: 3 virtio function(s) behind a unit = true, the audio function 00:04.0 among them
15:25:30 [build-lock] artifact staging acquired after 14.7s
15:25:30   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud  (39s)
15:25:31 [build-lock] artifact staging acquired after 14.2s
15:25:31   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button  (40s)
15:25:31 [build-lock] artifact staging acquired after 12.2s
15:25:31 [build-lock] artifact staging acquired after 12.2s
15:25:31 [build-lock] artifact staging acquired after 12.2s
15:25:31 [build-lock] artifact staging acquired after 12.1s
15:25:31 [build-lock] artifact staging acquired after 11.4s
15:25:31 [build-lock] artifact staging acquired after 11.3s
15:25:31 [build-lock] artifact staging acquired after 10.1s
15:25:31   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown  (40s)
15:25:31 [build-lock] artifact staging acquired after 8.7s
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:25:32 [build-lock] artifact staging acquired after 363.3ms
15:25:32   BUILT x86_64 ROOT of tests/acpicase, for acpi_mediated_access  (16s)
15:25:32 [build-lock] artifact staging acquired after 1.2s
15:25:32   BUILT x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu  (17s)
15:25:33 [build-lock] artifact staging acquired after 1.7s
15:25:33   BUILT x86_64 ROOT of tests/testcases, for bar_map_again  (16s)
15:25:33 [build-lock] artifact staging acquired after 2.0s
15:25:33   BUILT x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder  (18s)
15:25:33 [build-lock] artifact staging acquired after 2.2s
15:25:33   BUILT x86_64 ROOT of tests/netcase, for https_fetch  (17s)
15:25:34 [build-lock] artifact staging acquired after 2.8s
15:25:34   BUILT x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop  (18s)
15:25:34 [build-lock] artifact staging acquired after 3.1s
15:25:34   BUILT x86_64 ROOT of tests/netcase, for netstack_socket_churn  (20s)
15:25:35   BUILT x86_64 ROOT of tests/netcase, for libc_sockets  (16s)
15:25:37   [iommu] headless-no-iommu: 2 virtio function(s) behind a unit = false, the audio function 00:04.0 among them; the NIC's claim refused for want of a unit
15:25:37   [nmi] nested: [nmi] NESTED NMI on cpu 0: a second NMI entered while IST2 was still in use.
15:25:37   PASS  nested_nmi_is_loud  (7s)
15:25:37   RUN   console_image_boots
15:25:37   BUILD x86_64 ROOT of console, for console_image_boots
15:25:42   [power] 1 table(s) loaded; [10.824 acpiserver] acpiserver: \_S5 handed to the kernel: SLP_TYPa=0 beside [10.824 cpu0 kernel] power: S5 is PM1a 0x604 with SLP_TYPa=0, as the acpi claim's holder supplied it
15:25:42   [power] the press: acpiserver: the power button was pressed, on SCI 1 of this boot; asking the supervisor to power off
15:25:42   PASS  acpi_power_button  (11s)
15:25:42   RUN   nvme_disk_keeps_log_and_home
15:25:42   [power] shutdown: QEMU stopped the guest for guest-shutdown
15:25:42   PASS  machine_shutdown  (11s)
15:25:42   RUN   screen_panic_muted
15:25:42   [acpi] [ 7.968 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
15:25:42   [acpi] [ 7.982 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
15:25:42   [acpi] [10.418 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
15:25:42   [acpi] [10.420 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
15:25:42   [acpi] [10.420 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
15:25:42   [acpi] [10.421 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
15:25:42   [acpi] [10.421 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
15:25:42   [acpi] [10.422 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
15:25:42   [acpi] [10.482 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
15:25:42   [acpi] [10.483 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
15:25:42   [acpi] [10.485 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
15:25:42   [acpi] [10.485 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
15:25:42   [acpi] [10.481 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [1, 1, 1]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
15:25:42   [acpi] [10.482 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
15:25:42   [acpi] [10.440 cpu1 kernel tid=2] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 32027ns, its SMI count unread before the write and unread after; the first of that byte
15:25:42   [acpi] [10.458 cpu1 kernel tid=4] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 5004ns, its SMI count unread before the write and unread after; the first of that byte
15:25:42   [acpi] [10.478 cpu1 kernel tid=6] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 6005ns, its SMI count unread before the write and unread after; the first of that byte
15:25:42   [acpi] [10.480 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
15:25:42   [acpi] [10.480 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:25:42   [acpi] [10.380 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
15:25:42   [acpi] [10.538 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
15:25:42   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
15:25:42   PASS  acpi_mediated_access  (11s)
15:25:42   RUN   screen_fatal_behind_a_painter
15:25:43 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
15:25:43 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
15:25:43   BUILT x86_64 ROOT of console, for console_image_boots  (6s)
15:25:44   [acpi] [ 8.273 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
15:25:44   [acpi] [11.431 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
15:25:44   [acpi] [11.433 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
15:25:44   [acpi] [11.441 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
15:25:44   [acpi] [11.442 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
15:25:44   [acpi] [11.443 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
15:25:44   [acpi] [11.443 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
15:25:44   [acpi] [11.482 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
15:25:44   [acpi] [11.486 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
15:25:44   [acpi] [11.487 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
15:25:44   [acpi] [11.487 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
15:25:44   [acpi] [11.482 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [0, 0, 0]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
15:25:44   [acpi] [11.482 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
15:25:44   [acpi] [11.470 cpu0 kernel] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 17011ns, its SMI count unread before the write and unread after; the first of that byte
15:25:44   [acpi] [11.471 cpu0 kernel] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
15:25:44   [acpi] [11.471 cpu0 kernel] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
15:25:44   [acpi] [11.472 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:25:44   [acpi] [11.472 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
15:25:44   [acpi] [11.198 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
15:25:44   [acpi] [11.535 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
15:25:44   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
15:25:44   PASS  acpi_lock_given_back_on_one_cpu  (36s)
15:25:44   RUN   screen_fatal_halt_composited
15:25:44   BUILD x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited
15:25:45   [claims] bar_map_again: two answers held at once map apart, and the later outlives the earlier
15:25:45   [claims] bar_map_again: answered with a handle that maps
15:25:45   [claims] bar_map_again: answered after the refusal with a handle that maps
15:25:45   PASS  bar_map_again  (12s)
15:25:45   RUN   screen_loader_clears
15:25:45   [acpi] [12.243 cpu1 kernel] Shutting down.
15:25:45   [acpi] QEMU stopped the guest for guest-shutdown, with no claim held, on the sleep type a holder that is gone supplied
15:25:45   PASS  acpi_supply_outlives_holder  (37s)
15:25:45   RUN   virt_early_panic
15:25:45   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic
15:25:46   [power] a short stop, then the power-off: stop: 16 of 19 userland thread(s) stopped across 1 cpu(s) in 0 ms of a 0 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; this reset lands wherever the other 3 are
15:25:46   PASS  machine_shutdown_short_stop  (12s)
15:25:46   RUN   virt_early_fault
15:25:46   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault
15:25:47   [iommu] declined: [ 9.392 cpu0 kernel] virtio-sound: NOT INITIALISED — PCI 00:04.0 refused the feature set 0x100000000 the driver accepted, leaving DEVICE_STATUS=0x3 without FEATURES_OK
15:25:47   PASS  iommu_virtio_platform  (30s)
15:25:47   RUN   virt_el2_drop
15:25:47   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop
15:25:47   PASS  libc_sockets  (18s)
15:25:47   RUN   virt_user_mode
15:25:47   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
15:25:48   PASS  https_fetch  (14s)
15:25:48   RUN   virt_timer_preempts
15:25:48   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
15:25:48   PASS  screen_panic_muted  (6s)
15:25:48   RUN   virt_irq_storm
15:25:48   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm
15:25:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 2s so far
15:25:50 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 3s so far
15:25:51 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 4s so far
15:25:52 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 5s so far
15:25:52 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 5s so far
15:25:52 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 5s so far
15:25:53   PASS  console_image_boots  (10s)
15:25:53   RUN   virt_timer_floor
15:25:53   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor
15:25:56   PASS  screen_fatal_behind_a_painter  (13s)
15:25:56   RUN   virt_fp_isolation
15:25:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 9s so far
15:25:57   PASS  screen_loader_clears  (12s)
15:25:57   RUN   virt_first_entry
15:25:59 [build-lock] artifact staging acquired after 10.0s
15:25:59 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
15:25:59 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
15:25:59   BUILT x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited  (14s)
15:26:14   [panic] the fatal report is on the panel and sealed in the black box (14251 bytes)
15:26:14   PASS  screen_fatal_halt_composited  (16s)
15:26:14   RUN   virt_unmap_touch
15:26:16   [disk] after the reboot /home/kept-35142-1791559542456052000/release is the 10 lines of /system/etc/os-release, and /log/2026-10-09-152551.log: test-runner said kept-35142-1791559542456052000
15:26:16   PASS  nvme_disk_keeps_log_and_home  (34s)
15:26:16   RUN   virt_debug_refused
15:26:20 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 21s so far
15:26:21 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 22s so far
15:26:22 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 23s so far
15:26:22 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 23s so far
15:26:22 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 23s so far
15:26:26 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 27s so far
15:26:32 [build-lock] artifact staging acquired after 42.0s
15:26:32 [build-lock] artifact staging acquired after 41.3s
15:26:32 [build-lock] artifact staging acquired after 40.8s
15:26:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:26:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:26:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:26:52 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 35142 (artifact staging), 20s so far
15:26:52 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 35142 (artifact staging), 20s so far
15:26:53 [build-lock] artifact staging acquired after 60.5s
15:26:53 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:26:56 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 35142 (artifact staging), 3s so far
15:27:02 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 9s so far
15:27:02 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 9s so far
15:27:02 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 9s so far
15:27:10   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (83s)
15:27:10 [build-lock] artifact staging acquired after 78.1s
15:27:10   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
15:27:10 [build-lock] artifact staging acquired after 74.8s
15:27:10 [build-lock] artifact staging acquired after 38.0s
15:27:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 6s so far
15:27:23 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 35142 (artifact staging), 13s so far
15:27:27 [build-lock] artifact staging acquired after 54.2s
15:27:27   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop  (100s)
15:27:27 [build-lock] artifact staging acquired after 54.4s
15:27:27   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic  (101s)
15:27:27 [build-lock] artifact staging acquired after 34.4s
15:27:27   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault  (101s)
15:27:27 [build-lock] artifact staging acquired after 16.8s
15:27:27   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (100s)
15:27:28 [build-lock] artifact staging acquired after 17.1s
15:27:28   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor  (95s)
15:27:28 [build-lock] artifact staging acquired after 11.3s
15:27:28   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm  (99s)
15:27:28   PASS  virt_early_panic  (1s)
15:27:28   RUN   virt_readonly_copyout
15:27:28   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (18s)
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_first_entry
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_fp_isolation
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_debug_refused
15:27:28   PASS  virt_early_fault  (1s)
15:27:28   RUN   virt_ring0_timer_in_syscall
15:27:28   BUILD aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall
15:27:29   PASS  virt_el2_drop  (3s)
15:27:29   RUN   virt_mask_windows
15:27:29   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33   [virt] [ 4.956 cpu0 kernel] timer-floor: PASS span=10000 floor=10000 ticks: the comparator past the counter it was set from
15:27:33   PASS  virt_timer_floor  (5s)
15:27:33   RUN   virt_smp
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33   PASS  virt_user_mode  (5s)
15:27:33   RUN   virt_el1_smp
15:27:33 [build-lock] artifact staging acquired after 845.0ms
15:27:33 [build-lock] artifact staging acquired after 838.8ms
15:27:33 [build-lock] artifact staging acquired after 774.4ms
15:27:33 [build-lock] artifact staging acquired after 766.2ms
15:27:33   BUILT aarch64 ROOT of tests/virtjobcase, for virt_fp_isolation  (5s)
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:34 [build-lock] artifact staging acquired after 933.7ms
15:27:34   BUILT aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall  (5s)
15:27:34 [build-lock] artifact staging acquired after 905.8ms
15:27:34   BUILT aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch  (6s)
15:27:34 [build-lock] artifact staging acquired after 169.9ms
15:27:34   BUILT aarch64 ROOT of tests/virtjobcase, for virt_first_entry  (6s)
15:27:34 [build-lock] artifact staging acquired after 620.8ms
15:27:34   BUILT aarch64 ROOT of tests/virtjobcase, for virt_debug_refused  (6s)
15:27:34 [build-lock] artifact staging acquired after 928.4ms
15:27:34   BUILT aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout  (6s)
15:27:35 [build-lock] artifact staging acquired after 1.1s
15:27:35   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (7s)
15:27:36   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows  (6s)
15:27:36   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows
15:27:39   [virt] [ 5.716 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
15:27:39   PASS  virt_fp_isolation  (99s)
15:27:39   RUN   virt_failed_ap_leaves_no_hole
15:27:40   [virt] [ 5.739 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
15:27:40   PASS  virt_first_entry  (97s)
15:27:40   RUN   virt_fatal_halts_the_others_first
15:27:40   BUILD aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first
15:27:40   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows  (5s)
15:27:40   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp
15:27:40   BUILD aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows
15:27:40   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_smp
15:27:40   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
15:27:41   [virt] [ 5.714 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 1988266 and 2569007
15:27:41   PASS  virt_timer_preempts  (6s)
15:27:41   RUN   virt_reboot
15:27:41   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot
15:27:41   [virt] [ 6.749 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:27:41   PASS  virt_unmap_touch  (81s)
15:27:41   RUN   virt_off_names_the_cpus_left_on
15:27:41   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on
15:27:41   [virt] [ 7.140 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
15:27:41   PASS  virt_ring0_timer_in_syscall  (8s)
15:27:41   RUN   virt_reboot_refused_without_psci
15:27:41   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci
15:27:41   [virt] [ 6.970 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
15:27:41   PASS  virt_debug_refused  (80s)
15:27:41   [virt] [ 6.913 test-runner pid=18] a syscall writes only where its caller could store
15:27:41   PASS  virt_readonly_copyout  (7s)
15:27:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:27:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 1s so far
15:27:55   [virt] [27.216 cpu0 kernel] irq-storm: PASS sgis=3943727/3943727 ticks=1000: the timer fired through the flood, and every SGI sent was taken
15:27:55   PASS  virt_irq_storm  (27s)
15:28:08 [build-lock] artifact staging acquired after 23.6s
15:28:08 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09   BUILT aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first  (29s)
15:28:09 [build-lock] artifact staging acquired after 24.2s
15:28:09 [build-lock] artifact staging acquired after 24.1s
15:28:09 [build-lock] artifact staging acquired after 24.1s
15:28:09   BUILD aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first
15:28:09 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09 [build-lock] artifact staging acquired after 23.7s
15:28:09 [build-lock] artifact staging acquired after 23.7s
15:28:09 [build-lock] artifact staging acquired after 23.6s
15:28:09 [build-lock] artifact staging acquired after 869.4ms
15:28:09   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp  (29s)
15:28:09 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 35142 (artifact staging), 0s so far
15:28:09 [build-lock] artifact staging acquired after 549.8ms
15:28:09   BUILT aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows  (29s)
15:28:10 [build-lock] artifact staging acquired after 998.7ms
15:28:10   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_smp  (29s)
15:28:10 [build-lock] artifact staging acquired after 1.1s
15:28:10   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (30s)
15:28:11 [build-lock] artifact staging acquired after 1.7s
15:28:11   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on  (30s)
15:28:11 [build-lock] artifact staging acquired after 2.1s
15:28:11   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci  (30s)
15:28:11   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot  (31s)
15:28:14   BUILT aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first  (5s)
15:28:16   [virt] [ 6.849 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:28:16   [virt] 8 CPUs entered at EL1, started through HVC, and scheduling
15:28:17   [virt] [ 7.555 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:28:17   [virt] [ 7.401 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:28:17   [virt] 8 CPUs entered at EL2, started through SMC, and scheduling
15:28:18   [virt] [ 8.409 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
15:28:18   [virt] [ 8.530 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
15:28:18   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
15:28:18   PASS  virt_el1_smp  (16s)
15:28:18   [windows] cpu0 irqs_off_ns=48836000 preempt_off_ns=108652000
15:28:18   [windows] cpu1 irqs_off_ns=73605000 preempt_off_ns=18927000
15:28:18   [windows] cpu2 irqs_off_ns=550000 preempt_off_ns=17554000
15:28:18   [windows] cpu3 irqs_off_ns=32089000 preempt_off_ns=38412000
15:28:18   [windows] cpu4 irqs_off_ns=53261000 preempt_off_ns=70015000
15:28:18   [windows] cpu5 irqs_off_ns=1278000 preempt_off_ns=40669000
15:28:18   [windows] cpu6 irqs_off_ns=53369000 preempt_off_ns=97734000
15:28:18   [windows] cpu7 irqs_off_ns=17603000 preempt_off_ns=17677000
15:28:18   [virt] [ 7.721 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
15:28:18   [virt] [ 7.812 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
15:28:18   [virt] reboot: this machine has no reset this kernel performs — refused, and the job ended exit 1
15:28:18   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
15:28:18   PASS  virt_mask_windows  (9s)
15:28:18   PASS  virt_smp  (16s)
15:28:18   PASS  virt_reboot_refused_without_psci  (7s)
15:28:18   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
15:28:18   PASS  virt_reboot  (7s)
15:28:18   [virt] [ 7.024 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:28:20   [panic] the fatal path on cpu2 left every other CPU halted with interrupts masked
15:28:20   PASS  virt_fatal_halts_the_others_first  (6s)
15:28:22   [virt] [11.441 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
15:28:22   [virt] a non-last AP never started and the dense machine ran its job
15:28:22   PASS  virt_failed_ap_leaves_no_hole  (13s)
15:28:23   [virt] [6, 7] left on and named; the rest CPU_OFF, then 0x0 SYSTEM_OFF; 4694 PSCI call(s) traced
15:28:23   PASS  virt_off_names_the_cpus_left_on  (13s)

thread '<unnamed>' (223441587) panicked at tests/common/qemu.rs:2420:13:
[qemu] Boot timed out waiting for ===READY===; the console carried:
nothing at all
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
15:33:41 FAIL netstack_socket_churn: [qemu] Boot timed out waiting for ===READY===; the console carried:
nothing at all
15:33:41   FAIL  netstack_socket_churn  (487s)
15:33:41   --- 41 guests, 25 of them not the shipping kernel, 3 kernel build(s): ["", "boot-actuators,test-actuators", "mask-windows"]

15:33:41 host: fastest boot 889 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:33:41 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:33:41 failures:
15:33:41     netstack_socket_churn: [qemu] Boot timed out waiting for ===READY===; the console carried:

15:33:41 test result: FAILED. 38 passed, 1 failed, 0 invalidated, 39 total (530.0s; workers: 1436s building, 1282s testing)
15:33:41 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-35142-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-1c3e474a4106f225` (exit status: 1)

The silent boot's whole 16550 file, 58 bytes (od -c):

0000000  033   [   2   J 033   [   0   1   ;   0   1   H 033   [   =   3
0000020    h 033   [   2   J 033   [   0   1   ;   0   1   H 033   [   2
0000040    J 033   [   0   1   ;   0   1   H 033   [   =   3   h 033   [
0000060    2   J 033   [   0   1   ;   0   1   H                        
0000072

The same test alone a minute later, cargo test --test toyos-build -- netstack_socket_churn, whole:

uptime before: 17:34  up 10 days,  5:18, 6 users, load averages: 38.04 46.41 65.68
uptime after: 17:34  up 10 days,  5:19, 6 users, load averages: 37.01 45.47 64.77
EXIT=0
    Finished `test` profile [optimized + debuginfo] target(s) in 0.57s
     Running tests/toyos.rs (target/debug/deps/toyos_build-1c3e474a4106f225)

15:34:33 running 1 tests, 12 wide

15:34:33   RUN   netstack_socket_churn
15:34:33   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
15:34:37   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (4s)
15:34:37   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for netstack_socket_churn
15:34:41   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for netstack_socket_churn  (4s)
15:34:54   PASS  netstack_socket_churn  (12s)
15:34:54   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:34:54 host: fastest boot 10472 ms against the reference 1424 ms — liveness ceilings paid at 7.35x
15:34:54 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:34:54 test result: ok. 1 passed, 1 total (20.5s; workers: 8s building, 12s testing)

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

The earlier host-gate runs. cargo run -- --ci host at 019215c4b (ci-host-1.log), every [ci] line, the clippy finding, and the exit:

14:53:13 === [ci] the build system
14:54:08 [ci] the build system: cargo test --lib
14:54:08 === [ci] the harness's own checks
14:54:23 [ci] the harness's own checks: cargo test --test toyos-checks
14:54:23 === [ci] the workspace's host members
15:02:49 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update
15:02:49 === [ci] the kernel's library
15:03:01 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check
15:03:01 === [ci] the licences of what ships
15:03:04 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused
15:03:04 === [ci] clippy and the bare targets
15:03:04 [ci] clippy and the bare targets: installed
15:03:04 === [ci] clippy, warnings denied
15:05:31 [ci] clippy, warnings denied: cargo clippy --workspace $GUESTS --all-targets --keep-going -- $ADOPTED -D warnings; cargo clippy --workspace $GUESTS --all-targets --keep-going --features $CONTROLS -- $ADOPTED -D warnings
15:05:31 === [ci] kernel-loom without loom
15:05:33 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor
15:05:33 === [ci] control `wake-fence-off`
15:05:35 [ci] control `wake-fence-off`: 1 verdict(s) reached
15:05:35 === [ci] control `lock-acquire-off`
15:05:37 [ci] control `lock-acquire-off`: 1 verdict(s) reached
15:05:37 === [ci] control `owed-fence-off`
15:05:39 [ci] control `owed-fence-off`: 1 verdict(s) reached
15:05:39 === [ci] control `seqlock-writer-fence-off`
15:05:41 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached
15:05:41 === [ci] control `serial-try-lock-then-some`
15:05:43 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached
15:05:43 === [ci] control `reap-raise-relaxed`
15:05:45 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached
15:05:45 === [ci] control `shootdown-serve-relaxed`
15:05:48 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached
15:05:48 === [ci] control `shootdown-served-relaxed`
15:05:49 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached
15:05:49 === [ci] control `roster-commit-relaxed`
15:05:51 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached
15:05:51 === [ci] control `smp-ready-split`
15:05:53 [ci] control `smp-ready-split`: 1 verdict(s) reached
15:05:53 === [ci] control `log-commit-release-off`
15:05:56 [ci] control `log-commit-release-off`: 2 verdict(s) reached
15:05:56 === [ci] control `shard-publish-relaxed`
15:05:58 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached
15:05:58 === [ci] control `log-ring-publish-relaxed`
15:06:00 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached
15:06:00 === [ci] control `log-ring-tail-relaxed`
15:06:04 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached
15:06:04 === [ci] control `log-ring-loads-swapped`
15:06:07 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached
15:06:07 === [ci] control `post-is-an-answer`
15:06:09 [ci] control `post-is-an-answer`: 3 verdict(s) reached
15:06:09 === [ci] control `poll-fire-load-store`
15:06:12 [ci] control `poll-fire-load-store`: 2 verdict(s) reached
15:06:12 === [ci] control `sleeplock-acquire-off`
15:06:14 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached
15:06:14 === [ci] control `device-irq-lossy`
15:06:16 [ci] control `device-irq-lossy`: 1 verdict(s) reached
15:06:16 === [ci] control `dump-report-relaxed`
15:06:20 [ci] control `dump-report-relaxed`: 1 verdict(s) reached
15:06:20 === [ci] control `no-preempt-guard`
15:06:23 [ci] control `no-preempt-guard`: 1 verdict(s) reached
15:06:23 === [ci] control `doorbell-kick-relaxed`
15:06:25 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached
15:06:25 === [ci] control `push-fence-relaxed`
15:06:26 [ci] control `push-fence-relaxed`: 1 verdict(s) reached
15:06:26 === [ci] control `commit-ignores-notify`
15:06:29 [ci] control `commit-ignores-notify`: 2 verdict(s) reached
15:06:29 === [ci] control `notify-flag-load-only`
15:06:40 [ci] control `notify-flag-load-only`: 1 verdict(s) reached
15:06:40 === [ci] control `gate-fence-off`
15:06:43 [ci] control `gate-fence-off`: 1 verdict(s) reached
15:06:43 === [ci] control `poll-fire-load-store`
15:06:46 [ci] control `poll-fire-load-store`: 3 verdict(s) reached
15:06:46 === [ci] control `fault-posted-before-it-is-set`
15:06:49 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached
15:06:49 === [ci] control `victim-retires-mid-probe`
15:06:50 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached
15:06:50 === [ci] control `counting-allocator`
15:06:53 [ci] control `counting-allocator`: 2 verdict(s) reached
15:06:53 === [ci] control `mutate-spawn-skips-the-insert-recheck`
15:06:57 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached
15:06:57 === [ci] control `mutate-claim-teardown-always-wins`
15:07:00 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached
15:07:00 === [ci] control `mutate-kill-waits-for-its-victims`
15:07:04 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached
15:07:04 === [ci] control `mutate-first-out-tears-down`
15:07:13 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached
15:07:13 === [ci] control `mutate-join-collects-in-a-teardown`
15:07:18 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached
15:07:18 === [ci] control `mutate-last-out-leaves-before-its-teardown`
15:07:22 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached
15:07:22 === [ci] control `mutate-place-skips-the-insert-recheck`
15:07:26 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached
15:07:26 === [ci] control `mutate-refused-spawn-keeps-the-count`
15:07:29 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached
15:07:29 === [ci] control `mutate-landed-child-retires-nothing`
15:07:35 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached
15:07:35 === [ci] control `mutate-publish-before-the-children`
15:07:42 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached
15:07:42 === [ci] control `mutate-walk-in-one-hold`
15:07:48 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached
15:07:48 === [ci] control `mutate-spawner-handle-after-the-landing`
15:07:53 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached
15:07:53 === [ci] control `mutate-spawner-handle-before-the-childs-own`
15:07:57 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached
15:07:57 === [ci] control `placement-ignores-staleness`
15:08:04 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached
15:08:04 === [ci] control `mutate-session-end-forgets`
15:08:12 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached
15:08:12 === [ci] control `mutate-abort-keeps-inflight`
15:08:16 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached
15:08:16 === [ci] control `mutate-no-reissue-after-loss`
15:08:19 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached
15:08:19 === [ci] control `publish-relaxed`
15:08:22 [ci] control `publish-relaxed`: 1 verdict(s) reached
15:08:22 === [ci] control `no-clamp`
15:08:26 [ci] control `no-clamp`: 1 verdict(s) reached
15:08:26 === [ci] control `end-keeps-inflight`
15:08:27 [ci] control `end-keeps-inflight`: 1 verdict(s) reached
15:08:27 === [ci] userland/acpiserver
15:08:40 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml
15:08:40 === [ci] userland/acpiserver/aml
15:08:54 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml
15:08:54 === [ci] userland/calc
15:09:19 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml
15:09:19 === [ci] userland/compositor/desktop
15:09:22 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml
15:09:22 === [ci] userland/diskserver
15:09:27 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml
15:09:27 === [ci] userland/fileserver
15:09:37 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml
15:09:37 === [ci] userland/logkeeper
15:09:39 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml
15:09:39 === [ci] userland/netstack
15:09:51 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml
15:09:51 === [ci] userland/netstack/mdns
15:09:59 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml
15:09:59 === [ci] userland/netstack/node
15:10:17 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml
15:10:17 === [ci] userland/pkg
15:10:24 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml
15:10:24 === [ci] userland/soundserver
15:10:34 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml
15:10:34 === [ci] userland/soundserver/mixer
15:10:39 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml
15:10:39 === [ci] userland/sshserver
15:11:22 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml
15:11:22 === [ci] userland/symbolize
15:11:23 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml
15:11:23 === [ci] the apps for linux
15:12:11 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:12:11 === [ci] the apps for macos
15:12:42 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:12:42 === [ci] the apps for windows
15:13:19 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:13:19 === [ci] the toyos SDK
15:13:23 [ci] the toyos SDK: cargo test -p toyos
15:13:23 === [ci] nothing left in $TMPDIR or /tmp
15:13:23 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
15:13:23 [ci] Host: 1 of 78 step(s) red:
5847:error: field `0` is never read
5848-  --> tests/common/https.rs:78:12
5849-   |
5850-78 |     Failed(rustls::Error),
5851-   |     ------ ^^^^^^^^^^^^^
5852-   |     |
5853-   |     field in this variant
--
5875:error: field `0` is never read
5876-  --> tests/common/https.rs:78:12
5877-   |
5878-78 |     Failed(rustls::Error),
5879-   |     ------ ^^^^^^^^^^^^^
5880-   |     |
5881-   |     field in this variant
EXIT=1

At d63234cb9 (ci-host-2.log):

15:14:10 === [ci] the build system
15:14:25 [ci] the build system: cargo test --lib
15:14:25 === [ci] the harness's own checks
15:14:29 [ci] the harness's own checks: cargo test --test toyos-checks
15:14:29 === [ci] the workspace's host members
15:19:40 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update
15:19:40 === [ci] the kernel's library
15:19:40 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check
15:19:40 === [ci] the licences of what ships
15:19:43 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused
15:19:43 === [ci] clippy and the bare targets
15:19:43 [ci] clippy and the bare targets: installed
15:19:43 === [ci] clippy, warnings denied
15:20:12 [ci] clippy, warnings denied: clean
15:20:12 === [ci] kernel-loom without loom
15:20:13 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor
15:20:13 === [ci] control `wake-fence-off`
15:20:13 [ci] control `wake-fence-off`: 1 verdict(s) reached
15:20:13 === [ci] control `lock-acquire-off`
15:20:13 [ci] control `lock-acquire-off`: 1 verdict(s) reached
15:20:13 === [ci] control `owed-fence-off`
15:20:13 [ci] control `owed-fence-off`: 1 verdict(s) reached
15:20:13 === [ci] control `seqlock-writer-fence-off`
15:20:14 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached
15:20:14 === [ci] control `serial-try-lock-then-some`
15:20:14 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached
15:20:14 === [ci] control `reap-raise-relaxed`
15:20:14 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached
15:20:14 === [ci] control `shootdown-serve-relaxed`
15:20:15 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached
15:20:15 === [ci] control `shootdown-served-relaxed`
15:20:15 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached
15:20:15 === [ci] control `roster-commit-relaxed`
15:20:15 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached
15:20:15 === [ci] control `smp-ready-split`
15:20:16 [ci] control `smp-ready-split`: 1 verdict(s) reached
15:20:16 === [ci] control `log-commit-release-off`
15:20:16 [ci] control `log-commit-release-off`: 2 verdict(s) reached
15:20:16 === [ci] control `shard-publish-relaxed`
15:20:16 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached
15:20:16 === [ci] control `log-ring-publish-relaxed`
15:20:16 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached
15:20:16 === [ci] control `log-ring-tail-relaxed`
15:20:17 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached
15:20:17 === [ci] control `log-ring-loads-swapped`
15:20:17 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached
15:20:17 === [ci] control `post-is-an-answer`
15:20:17 [ci] control `post-is-an-answer`: 3 verdict(s) reached
15:20:17 === [ci] control `poll-fire-load-store`
15:20:17 [ci] control `poll-fire-load-store`: 2 verdict(s) reached
15:20:17 === [ci] control `sleeplock-acquire-off`
15:20:18 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached
15:20:18 === [ci] control `device-irq-lossy`
15:20:18 [ci] control `device-irq-lossy`: 1 verdict(s) reached
15:20:18 === [ci] control `dump-report-relaxed`
15:20:18 [ci] control `dump-report-relaxed`: 1 verdict(s) reached
15:20:18 === [ci] control `no-preempt-guard`
15:20:19 [ci] control `no-preempt-guard`: 1 verdict(s) reached
15:20:19 === [ci] control `doorbell-kick-relaxed`
15:20:19 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached
15:20:19 === [ci] control `push-fence-relaxed`
15:20:20 [ci] control `push-fence-relaxed`: 1 verdict(s) reached
15:20:20 === [ci] control `commit-ignores-notify`
15:20:20 [ci] control `commit-ignores-notify`: 2 verdict(s) reached
15:20:20 === [ci] control `notify-flag-load-only`
15:20:25 [ci] control `notify-flag-load-only`: 1 verdict(s) reached
15:20:25 === [ci] control `gate-fence-off`
15:20:25 [ci] control `gate-fence-off`: 1 verdict(s) reached
15:20:25 === [ci] control `poll-fire-load-store`
15:20:25 [ci] control `poll-fire-load-store`: 3 verdict(s) reached
15:20:25 === [ci] control `fault-posted-before-it-is-set`
15:20:25 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached
15:20:25 === [ci] control `victim-retires-mid-probe`
15:20:26 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached
15:20:26 === [ci] control `counting-allocator`
15:20:26 [ci] control `counting-allocator`: 2 verdict(s) reached
15:20:26 === [ci] control `mutate-spawn-skips-the-insert-recheck`
15:20:26 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached
15:20:26 === [ci] control `mutate-claim-teardown-always-wins`
15:20:27 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached
15:20:27 === [ci] control `mutate-kill-waits-for-its-victims`
15:20:27 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached
15:20:27 === [ci] control `mutate-first-out-tears-down`
15:20:27 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached
15:20:27 === [ci] control `mutate-join-collects-in-a-teardown`
15:20:27 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached
15:20:27 === [ci] control `mutate-last-out-leaves-before-its-teardown`
15:20:28 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached
15:20:28 === [ci] control `mutate-place-skips-the-insert-recheck`
15:20:28 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached
15:20:28 === [ci] control `mutate-refused-spawn-keeps-the-count`
15:20:28 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached
15:20:28 === [ci] control `mutate-landed-child-retires-nothing`
15:20:28 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached
15:20:28 === [ci] control `mutate-publish-before-the-children`
15:20:29 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached
15:20:29 === [ci] control `mutate-walk-in-one-hold`
15:20:29 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached
15:20:29 === [ci] control `mutate-spawner-handle-after-the-landing`
15:20:29 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached
15:20:29 === [ci] control `mutate-spawner-handle-before-the-childs-own`
15:20:29 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached
15:20:29 === [ci] control `placement-ignores-staleness`
15:20:30 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached
15:20:30 === [ci] control `mutate-session-end-forgets`
15:20:38 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached
15:20:38 === [ci] control `mutate-abort-keeps-inflight`
15:20:38 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached
15:20:38 === [ci] control `mutate-no-reissue-after-loss`
15:20:38 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached
15:20:38 === [ci] control `publish-relaxed`
15:20:38 [ci] control `publish-relaxed`: 1 verdict(s) reached
15:20:38 === [ci] control `no-clamp`
15:20:39 [ci] control `no-clamp`: 1 verdict(s) reached
15:20:39 === [ci] control `end-keeps-inflight`
15:20:39 [ci] control `end-keeps-inflight`: 1 verdict(s) reached
15:20:39 === [ci] userland/acpiserver
15:20:39 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml
15:20:39 === [ci] userland/acpiserver/aml
15:20:40 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml
15:20:40 === [ci] userland/calc
15:20:41 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml
15:20:41 === [ci] userland/compositor/desktop
15:20:41 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml
15:20:41 === [ci] userland/diskserver
15:20:41 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml
15:20:41 === [ci] userland/fileserver
15:20:42 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml
15:20:42 === [ci] userland/logkeeper
15:20:42 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml
15:20:42 === [ci] userland/netstack
15:20:42 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml
15:20:42 === [ci] userland/netstack/mdns
15:20:42 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml
15:20:42 === [ci] userland/netstack/node
15:20:43 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml
15:20:43 === [ci] userland/pkg
15:20:44 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml
15:20:44 === [ci] userland/soundserver
15:20:44 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml
15:20:44 === [ci] userland/soundserver/mixer
15:20:47 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml
15:20:47 === [ci] userland/sshserver
15:20:49 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml
15:20:49 === [ci] userland/symbolize
15:20:49 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml
15:20:49 === [ci] the apps for linux
15:20:52 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:20:52 === [ci] the apps for macos
15:20:54 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:20:54 === [ci] the apps for windows
15:20:57 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
15:20:57 === [ci] the toyos SDK
15:20:57 [ci] the toyos SDK: cargo test -p toyos
15:20:57 === [ci] nothing left in $TMPDIR or /tmp
15:20:57 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
15:20:57 [ci] Host: 78 step(s), all green
EXIT=0

The roots file's host test, first run (roots-host-test.log, whole):

    Updating crates.io index
    Blocking waiting for file lock on package cache
     Locking 1 package to latest compatible version
      Adding webpki-root-certs v1.0.9
   Compiling libc v0.2.190
   Compiling cfg-if v1.0.4
   Compiling memchr v2.8.0
   Compiling regex-automata v0.4.18
   Compiling getrandom v0.4.2 (https://github.com/ToyOSOrg/getrandom?branch=toyos-0.4#f0286c8b)
   Compiling parking_lot_core v0.9.12
   Compiling tinyvec v1.13.3
   Compiling scopeguard v1.2.0
   Compiling gix-trace v0.2.0
   Compiling fastrand v2.5.0
   Compiling once_cell v1.21.4
   Compiling smallvec v1.15.1
   Compiling crc32fast v1.5.0
   Compiling autocfg v1.5.1
   Compiling same-file v1.0.6
   Compiling lock_api v0.4.14
   Compiling walkdir v2.5.0
   Compiling bitflags v2.11.0
   Compiling byteorder v1.5.0
   Compiling heapless v0.8.0
   Compiling allocator-api2 v0.2.21
   Compiling equivalent v1.0.2
   Compiling faster-hex v0.10.1
   Compiling stable_deref_trait v1.2.1
   Compiling foldhash v0.2.0
   Compiling rustix v1.1.5
   Compiling itoa v1.0.17
   Compiling hash32 v0.3.1
   Compiling unicode-normalization v0.1.25
   Compiling crossbeam-utils v0.8.23
   Compiling sha1dc v0.1.2
   Compiling hashbrown v0.14.5
   Compiling jiff-core v0.1.1
   Compiling proc-macro2 v1.0.106
   Compiling quote v1.0.45
   Compiling nonempty v0.12.0
   Compiling hashbrown v0.17.1
   Compiling unicode-ident v1.0.24
   Compiling unicode-bom v2.0.3
   Compiling rustversion v1.0.22
   Compiling version_check v0.9.5
   Compiling typenum v1.20.1
   Compiling find-msvc-tools v0.1.9
   Compiling generic-array v0.14.7
   Compiling serde_core v1.0.228
   Compiling shlex v1.3.0
   Compiling bstr v1.13.1
   Compiling cc v1.2.56
   Compiling hashbrown v0.16.1
   Compiling errno v0.3.14
   Compiling memmap2 v0.9.11
   Compiling gix-sec v0.15.0
   Compiling jiff v0.2.37
   Compiling parking_lot v0.12.5
   Compiling gix-error v0.4.0
   Compiling gix-utils v0.4.0
   Compiling dashmap v6.2.1
   Compiling prodash v31.0.0
   Compiling syn v2.0.117
   Compiling gix-validate v0.12.0
   Compiling gix-quote v0.9.0
   Compiling gix-chunk v0.9.0
   Compiling gix-path v0.13.0
   Compiling filetime v0.2.29
   Compiling toyos-abi v0.16.0 (<dev>/toyos-tls/toyos-abi)
   Compiling tempfile v3.27.0
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling ring v0.17.14 (https://github.com/ToyOSOrg/ring?branch=toyos-0.17.14#34818c45)
   Compiling gix-packetline v0.23.0
   Compiling gix-bitmap v0.5.0
   Compiling encoding_rs v0.8.42
   Compiling gix-features v0.50.0
   Compiling gix-command v0.11.0
   Compiling gix-config-value v0.20.0
   Compiling num-traits v0.2.19
   Compiling semver v1.0.28
   Compiling gix-hash v0.27.0
   Compiling gix-fs v0.23.0
   Compiling gix-glob v0.28.0
   Compiling gix-tempfile v25.0.0
   Compiling gix-hashtable v0.17.0
   Compiling gix-lock v25.0.0
   Compiling gix-commitgraph v0.40.0
   Compiling gix-attributes v0.36.0
   Compiling fnv v1.0.7
   Compiling percent-encoding v2.3.2
   Compiling serde v1.0.228
   Compiling zeroize v1.9.0
   Compiling gix-ignore v0.23.0
   Compiling rustc_version v0.4.1
   Compiling gix-pathspec v0.21.0
   Compiling rustls-pki-types v1.15.1
   Compiling digest v0.10.7
   Compiling multiversion_no_op v1.0.0
   Compiling subtle v2.6.1
   Compiling simdutf8 v0.1.5
   Compiling log v0.4.29
   Compiling curve25519-dalek v4.1.3
   Compiling gix-url v0.39.0
   Compiling cpufeatures v0.2.17
   Compiling getrandom v0.2.17 (https://github.com/ToyOSOrg/getrandom?branch=toyos-0.2-sdk-0.12#2092d1cc)
   Compiling httparse v1.10.1
   Compiling untrusted v0.9.0
   Compiling zlib-rs v0.6.8
   Compiling sha2 v0.10.9
   Compiling clru v0.6.3
   Compiling gix-imara-diff v0.3.0
   Compiling bytes v1.12.1
   Compiling rustls v0.23.45
   Compiling signature v2.2.0
   Compiling core-foundation-sys v0.8.7
   Compiling zmij v1.0.21
   Compiling iana-time-zone v0.1.65
   Compiling http v1.5.0
   Compiling serde_derive v1.0.228
   Compiling gix-macros v0.2.0
   Compiling ed25519 v2.2.3
   Compiling gix-transport v0.60.0
   Compiling gix-date v0.17.0
   Compiling gix-actor v0.43.0
   Compiling gix-object v0.65.0
   Compiling gix-shallow v0.14.0
   Compiling gix-refspec v0.46.0
   Compiling indexmap v2.13.0
   Compiling arc-swap v1.9.2
   Compiling getrandom v0.3.4 (https://github.com/ToyOSOrg/getrandom?branch=toyos-0.3-sdk-0.12#67c17e0a)
   Compiling crc-catalog v2.4.0
   Compiling winnow v0.7.15
   Compiling adler2 v2.0.1
   Compiling toml_write v0.1.2
   Compiling simd-adler32 v0.3.10
   Compiling foldhash v0.1.5
   Compiling base64 v0.23.1
   Compiling serde_json v1.0.149
   Compiling pxfm v0.1.28
   Compiling zune-core v0.5.1
   Compiling ureq-proto v0.6.4
   Compiling zune-jpeg v0.5.13
   Compiling gix-revwalk v0.36.0
   Compiling gix-ref v0.68.0
   Compiling gix-traverse v0.62.0
   Compiling gix-filter v0.35.0
   Compiling gix-revision v0.50.0
   Compiling gix-index v0.56.0
   Compiling gix-discover v0.56.0
   Compiling gix-config v0.61.0
   Compiling serde_spanned v0.6.9
   Compiling gix-zlib v0.2.0
   Compiling gix-pack v0.75.0
   Compiling rustls-webpki v0.103.15
   Compiling toml_datetime v0.6.11
   Compiling toml_edit v0.22.27
   Compiling gix-worktree v0.57.0
   Compiling gix-diff v0.68.0
   Compiling gix-dir v0.30.0
   Compiling gix-odb v0.85.0
   Compiling moxcms v0.8.1
   Compiling gix-submodule v0.35.0
   Compiling gix-status v0.35.0
   Compiling gix-protocol v0.66.0
   Compiling hashbrown v0.15.5
   Compiling miniz_oxide v0.9.1
   Compiling crc v3.4.0
   Compiling ed25519-dalek v2.2.0
   Compiling chrono v0.4.44
   Compiling webpki-roots v1.0.9
   Compiling toyos-manifest v0.1.0 (<dev>/toyos-tls/toyos-manifest)
   Compiling toyos-bootmap v0.1.0 (<dev>/toyos-tls/toyos-bootmap)
   Compiling uuid v1.22.0
   Compiling byteorder-lite v0.1.0
   Compiling ttf-parser v0.21.1
   Compiling toyos-elide v0.1.0 (<dev>/toyos-tls/toyos-elide)
   Compiling toyos-wallclock v0.1.0 (<dev>/toyos-tls/toyos-wallclock)
   Compiling utf8-zero v0.8.1
   Compiling toyos-elf v0.1.0 (<dev>/toyos-tls/toyos-elf)
   Compiling bitflags v1.3.2
   Compiling rustc-demangle v0.1.27
   Compiling bytemuck v1.25.0
   Compiling toyos-fat32 v0.1.0 (<dev>/toyos-tls/toyos-fat32)
   Compiling fatfs v0.3.6
   Compiling image v0.25.10
   Compiling toyos-symbols v0.1.0 (<dev>/toyos-tls/toyos-symbols)
   Compiling gpt v3.1.0
   Compiling toyos-swap v0.1.0 (<dev>/toyos-tls/toyos-swap)
   Compiling fontdue v0.9.3
   Compiling toyos-userbound v0.1.0 (<dev>/toyos-tls/toyos-userbound)
   Compiling toyos-update v0.1.0 (<dev>/toyos-tls/toyos-update)
   Compiling flate2 v1.1.10
   Compiling gix v0.88.0
   Compiling toml v0.8.23
   Compiling webpki-root-certs v1.0.9
   Compiling kernel v0.1.0 (<dev>/toyos-tls/kernel)
   Compiling ureq v3.4.2
   Compiling toyos-logstream v0.1.0 (<dev>/toyos-tls/toyos-logstream)
   Compiling tar v0.4.46
   Compiling toyos-gpt v0.1.0 (<dev>/toyos-tls/toyos-gpt)
   Compiling toyos-osrelease v0.1.0 (<dev>/toyos-tls/toyos-osrelease)
   Compiling bcachefs v0.1.0 (<dev>/toyos-tls/bcachefs)
   Compiling toyos-fat32-check v0.1.0 (<dev>/toyos-tls/toyos-fat32/check)
   Compiling toyos-quiesce v0.1.0 (<dev>/toyos-tls/toyos-quiesce)
   Compiling toyos-tmpdir v0.1.0 (<dev>/toyos-tls/toyos-tmpdir)
   Compiling toyos-blackbox v0.1.0 (<dev>/toyos-tls/toyos-blackbox)
   Compiling toyos-xhci v0.1.0 (<dev>/toyos-tls/toyos-xhci)
   Compiling base64 v0.22.1
   Compiling acpiserver-api v0.1.0 (<dev>/toyos-tls/userland/acpiserver-api)
   Compiling toyos-keymap v0.1.0 (<dev>/toyos-tls/toyos-keymap)
   Compiling toyos-tco v0.1.0 (<dev>/toyos-tls/toyos-tco)
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 1m 48s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-4a2ddf14836ee514)

running 1 test
test build::tests::the_trust_roots_read_back_as_the_published_set ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.00s

@Japabu

Japabu commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator Author

Review of #810 at c86a74113 (fork ToyOSOrg/ring toyos-0.17.14 at 34818c459), first round.

Net lines (git diff --shortstat origin/main...c86a74113): 16 files, +1253 −412. Lockfiles +552 −367. Production +60 −27: src/build.rs +47 −8, Cargo.toml +9, userland/doom +4 −16. Tests +532: tests/common/https.rs +166, ring_kat.rs +166, tests/toyos.rs +98, https_get.rs +77, the host test +18, the test crate's manifest +7. Issues +109 −21.

Posted logs: all eight comments checked. No home-directory path, user name or machine identifier. Paths read ~/.cargo/… and /<scratch>/…. The only MAC is QEMU's 52:54:00:12:34:56, and toyos-t14.local is the tree's own dhcp::HOSTNAME.

Fork: e0626e4e0 matches the extracted ring-0.17.14 crate under diff -r (only .cargo_vcs_info.json/.cargo-ok differ; I checked this myself). 39eff8204 is the ruled edit and nothing more. 34818c459 adds two arms. Both lockfiles name 34818c4599e7….

BLOCKER

  • tests/toyos.rs (whole branch) — The branch no longer merges into main. git merge-tree --write-tree origin/main c86a74113 gives CONFLICT (content): Merge conflict in tests/toyos.rs. The base a944746d5 is older than The kernel's random bytes come from a ChaCha20 generator keyed from the loader's seed and the CPU's sources, and 17 of the AArch64 guest tests run under HVF #802, which replaced the generator behind SYS_RANDOM, and ring's SystemRandom reads that syscall through the getrandom fork. It is also older than The node keeps the pipe order std reads a stream's end by: a FIN after a shutdown reads as a FIN, a failure as a reset #803 and A lost .local name is probed for again a minute after each loss: claimed when no host answers, at most one probing a minute whatever a peer sends, and one log line a loss #800, which changed netstack and the node. Fix: merge main, then measure cargo run -- --ci host, the whole cargo test and https_fetch again at the merged head. The current head cannot land, and its measurements were taken on a kernel main no longer has.

  • src/build.rs:756-765 — The match on extra_files and its starts_with assert exist only for tests. extra_files reaches build_and_assemble from build_test_parts alone, so this branch never runs in a shipped build. The arm also buys nothing: the staged file replaces the shipped one, and https_get takes its roots path in argv anyway (tests/toyos.rs:3123). Fix: stage the test's bundle (build roots plus harness CA) under a name of its own, pass that path, delete the match and the assert, and keep root_files.push((TRUST_ROOTS, trust_roots())) unconditional. Rule: nothing ships for tests alone, and no new check guards what a reader of the one caller can see.

  • src/build.rs:2089-2108 — TestBuild's cc_env field and method duplicate build_programs' existing CSysroot::of(env.sysroot.dir(), arch).cc_env() and its &str conversion (src/build.rs:818-819). Both start from a GuestEnv. Fix: give GuestEnv the C environment once and have both callers read it.

  • src/build.rs:713-731, issues/the-trust-roots-ship-in-every-image-and-no-licence-gate-reads-them.md — On your second open decision, filing is not enough. From this merge on, every image ships data under CDLA-Permissive-2.0. licence::ALLOWED does not name that licence, no EXCEPTIONS row covers it, and the image carries no copy of its text, which the issue itself says. That makes the contract in the src/licence.rs header ("everything that ships … is under a licence ALLOWED names, or is an EXCEPTIONS row") false of the tree. This is not a compromise the branch found; the branch creates it. Adding a licence to the allowlist is the owner's decision, and the branch makes it by landing: the file is kind: tooling, its owner is a track nobody holds, and the owner has not been asked. Fix: ask the owner. If he rules for it, land the roots with the gate reading them (identifier allowed or a row, matched against the licence text) and with the notice the licence asks for in the image. Until then, ROOT does not carry them.

  • tests/toyos-rust-tests/src/bin/ring_kat.rs:83-158 — On whether the independent oracle suffices: it covers what the fetch uses (X25519, AES-256-GCM, SHA-512's block function under SHA-384, ECDSA P-256 verify), but not what the shipped roots are for. The Mozilla set's roots and their chains are RSA and P-384. On ToyOS they go through ring's Montgomery assembly, which the LINUX_ABI arm turns on and which picks its code by ADX/BMI2, so CI's KVM and TCG run different code. No guest run reaches any of it. The rcgen chain is P-256 only, and ring_kat's own header says it is "the oracle under every TLS connection a ToyOS program makes". On high-risk code, a defect in the path every real connection takes would land unseen. Fix: add published known answers to ring_kat:

    • RSA PKCS#1 v1.5 SHA-256 verify at 2048 bits, from NIST CAVP SigVer.
    • RSA-PSS SHA-256 verify, from the same source.
    • ECDSA P-384 SHA-384, RFC 6979 A.2.6.
    • SHA-384 of "abc", FIPS 180-2 D.1.

    Each takes a refusal on a flipped bit, like the AEAD cases. Then run the mutation that flips one bit of the RSA vector's expected signature input and show that https_fetch goes red.

NOTE

  • issues/a-guest-close-after-a-refused-handshake-can-leave-its-peer-waiting.md — Filing it rather than stopping was right. A FIN that never arrives is not a byte the stream lost or corrupted, and it is off the task. But the issue gives the defect to netstack without the one cheap measurement that would say whose it is: a QEMU filter-dump on the netcase NIC, showing whether the guest ever sent the FIN or the 100 s reset, or whether slirp lost it. Add that capture, or say in the issue that slirp is not ruled out.
  • issues/a-netcase-boot-under-host-load-said-nothing-past-the-firmwares-screen-clears.md — This handles the red under load correctly: the host's load is recorded, it does not depend on this branch (the firmware stopped before the loader), I found no sibling issue, and its exit can be read. No change asked.
  • Cargo.toml:264, tests/toyos-rust-tests/Cargo.toml:40 — Pinning by branch with the commit in both lockfiles is the right call. Every fork in [patch.crates-io] is pinned that way, implementer.md's "A fork" asks that the lockfile bump land in the same pull request, and this one does. No change asked.
  • userland/doom/Cargo.toml:21 — Changing doom's manifest is in scope. The track's exit says "no manifest names rustls-rustcrypto", and a build script's dependency cannot change without its manifest. The host's ring already arrives through src/release.rs, so doom builds on no fewer hosts. No change asked.
  • issues/the-build-runs-host-tools-outside-rust-and-qemu.md:22-23 — The rows say where cc and the toolchain's clang are used, and they no longer say all of it. The host's cc now also compiles ring for doom's build script. The toolchain's clang now also compiles a test crate's C (ring for x86_64-unknown-toyos through TestBuild). Add both uses.
  • tests/toyos.rs:217 — ring_kat now runs twice on every QEMU suite on the same TCG CPU model: once on the shared boot and once in https_fetch. The body's reason for the shared run is the T14, which has not been run. Either run it on the T14 and say so in the body, or explain why the QEMU shared run earns its place.
  • src/build.rs:717-732 — pem 4, already in the lock through rcgen, writes PEM. Using it would remove the hand-written encoder, the base64 dependency and the encoder's half of the_trust_roots_read_back_as_the_published_set.
  • PR body, "Not run" — There is no measurement on CI's KVM CPU, where ring takes its AES-NI, AVX2 and ADX paths, which TCG's qemu64 never runs. Put the guest / suite run's log for the merged head in the body before landing.

SEND BACK

Japabu and others added 4 commits October 9, 2026 18:09
…nd's order (#803) and the .local name's probing (#800), into the HTTPS client

ring_kat's line in DRIVEN_AND_SHARED met random_draws' there; the merge keeps
main's, and the next commit decides ring_kat's place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
…s them, and ring_kat holds RSA, P-384 and SHA-384 to published answers

The owner allowed CDLA-Permissive-2.0 for the Mozilla roots. The licence gate
now judges them: by the licence of the crate the build copies them out of
(`build::TRUST_ROOTS_CRATE`), as data, the one place `licence::DATA_ONLY`
passes, and refused unless the text the image carries beside them,
/system/etc/ssl/CDLA-Permissive-2.0.txt, is that crate's own LICENSE byte for
byte. The licence asks for the text to travel with the data; it is committed
under licenses/ and NOTICE names it. The tooling issue that tracked the
gap is closed.

The `font: bool` the gate threaded through `refused`, `judge_licence` and
`Report::judge` becomes `Scope`, since a licence allowed for data alone is a
third case.

`https_fetch` stages the roots and its harness's authority under a name of its
own and passes that path, so `build_and_assemble` writes the roots
unconditionally and the test-only match and assert go.

The C environment is `GuestEnv`'s, applied by `cargo_build` to every guest
build, so `build_programs` and `TestBuild` no longer each derive it.

`trust_roots` writes PEM with `pem`, already in the lock through rcgen, and the
hand-written encoder, `base64` and the test of the encoder's round trip go.

`ring_kat` adds SHA-384 of "abc" (FIPS 180-2 D.1), ECDSA P-384 with SHA-384
(RFC 6979 A.2.6), and RSA PKCS#1 v1.5 and PSS with SHA-256 at 2048 bits (the
first passing `[mod = 2048]` SHA256 vector of NIST CAVP's FIPS 186-3
SigVer15 and SigVerPSS), each signature refused with a bit flipped. It runs in
`https_fetch` alone now: the shared boot ran it on the same QEMU CPU model as
the fetch's boot, so the second run bought nothing, and the fetch's run keeps
the oracle beside the handshake it vouches for.

The host-tools rows name the host `cc` compiling ring for doom's build script
and the toolchain's clang compiling a test crate's ring, and the lost-FIN
issue says slirp is not ruled out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
The gate globs every section's path through git before it reads a section as
prose, and /system/etc/ssl/cert.pem is a path on ROOT, not in the tree: the
licence step of `cargo run -- --ci host` was red on it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
…een clears

`https_fetch` alone at 216f33b, at load 89 to 99, timed out waiting for
===READY=== after 64 s with the same 58 bytes of firmware escapes on its
16550 and nothing after them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Negative controls, round 2. Each log is the whole of one mutate.sh run: the head, the patch as applied (git diff), the command, its output, MUTANT_EXIT, and git status --porcelain after the patch was reversed (restored: []). m1–m5, m7, m8 at e3b11331e; g0–g2 at 216f33b35 (the commit after it touches only an issue file). m6 is retired with the encoder it tested. g0 is the gate run on the tree with no mutation, the green arm g1 and g2 are read against. The runner (a scratch script, not in the tree):

#!/bin/sh
# usage: mutate.sh <patch> <log> -- <command...>: apply, build and run, record the exit, restore.
W=<dev>/toyos-tls
patch=$1; log=$2; shift 3
cd $W || exit 9
[ -z "$(git status --porcelain --ignore-submodules=none)" ] || { echo "tree not clean" > $log; exit 9; }
git apply --check "$patch" && git apply "$patch" || { echo "patch does not apply" > $log; exit 9; }
{ echo "head: $(git rev-parse HEAD)"; echo "patch: $(basename $patch)"; git diff; echo "--- run: $*"; } > $log
"$@" >> $log 2>&1; code=$?
echo "MUTANT_EXIT=$code" >> $log
git apply -R "$patch"
echo "restored: [$(git status --porcelain --ignore-submodules=none)]" >> $log

Where the new known answers come from, fetched with the project User-Agent, sha256 of each download: rfc6979.txt (rfc-editor.org) 456e8f17558fdbd206f968b96fc6f1b4a71ea331ab30ad17f711ab3adaa7d701, A.2.6 "With SHA-384, message = "sample""; 186-3rsatestvectors.zip (csrc.nist.gov, CAVP) 8405aeb3572a4f98ed4b1a3ccb3f2f49e725462dd28ec4759d6a15d88855d19c, SigVer15_186-3.rsp and SigVerPSS_186-3.rsp, [mod = 2048], the first SHAAlg = SHA256 vector of each with Result = P (PSS: salt 32 bytes); FIPS 180-2 D.1 for SHA-384("abc"). Before the guest, the whole ring_kat ran on the host against crates.io ring 0.17.14 (aarch64-apple-darwin), EXIT=0, every line ok, the three new signature lines verified, and refused with a flipped signature bit.

control-g0-the-gate-on-this-tree.log
head: 216f33b3536475b4807424860620d21660351ba8
patch: g0-the-gate-on-this-tree.patch
diff --git a/src/licence.rs b/src/licence.rs
index edb80a238..22c7bfb5c 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -1413,6 +1413,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 41.36s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 356 filtered out; finished in 6.70s

MUTANT_EXIT=0
restored: []
control-g1-cdla-not-allowed-as-data.log
head: 216f33b3536475b4807424860620d21660351ba8
patch: g1-cdla-not-allowed-as-data.patch
diff --git a/src/licence.rs b/src/licence.rs
index edb80a238..d7f693517 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -86,7 +86,7 @@ const FONTS_ONLY: &[&str] = &["OFL-1.1"];
 /// Allowed for the data the build writes into an image out of
 /// [`crate::build::TRUST_ROOTS_CRATE`], and nowhere else: the owner allowed
 /// CDLA-Permissive-2.0 for the Mozilla roots.
-const DATA_ONLY: &[&str] = &["CDLA-Permissive-2.0"];
+const DATA_ONLY: &[&str] = &[];
 
 /// What a licence is judged as: [`FONTS_ONLY`] passes only for a font and
 /// [`DATA_ONLY`] only for the trust roots.
@@ -1413,6 +1413,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 17.01s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... FAILED

failures:

---- licence::tests::the_gate_on_this_tree stdout ----
16:40:07   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
16:40:07   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
16:40:07   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
16:40:07   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
16:40:07   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
16:40:07   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
16:40:07   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
16:40:07   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
16:40:07   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
16:40:07   crate doom 0.1.0 (<dev>/toyos-tls/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
16:40:07   crate windows-sys 0.61.100 (<dev>/toyos-tls/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
16:40:07   crate windows-link 0.0.0 (<dev>/toyos-tls/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
16:40:07   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
16:40:07   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
16:40:07   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom

thread 'licence::tests::the_gate_on_this_tree' (227835110) panicked at src/licence.rs:1418:54:
called `Result::unwrap()` on an `Err` value: "1 refusal(s):\n  crate webpki-root-certs 1.0.9, the data of etc/ssl/cert.pem is \"CDLA-Permissive-2.0\": not allowed: CDLA-Permissive-2.0; pulled in by build::trust_roots"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    licence::tests::the_gate_on_this_tree

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 356 filtered out; finished in 4.05s

error: test failed, to rerun pass `-p toyos-build --lib`
MUTANT_EXIT=101
restored: []
control-g2-another-licence-text-beside-the-roots.log
head: 216f33b3536475b4807424860620d21660351ba8
patch: g2-another-licence-text-beside-the-roots.patch
diff --git a/src/build.rs b/src/build.rs
index c96861e52..3c0534c6d 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -728,7 +728,7 @@ pub const TRUST_ROOTS_CRATE: &str = "webpki-root-certs";
 /// lets the roots be shared only with it.
 pub const TRUST_ROOTS_LICENCE: (&str, &[u8]) = (
     "etc/ssl/CDLA-Permissive-2.0.txt",
-    include_bytes!("../licenses/CDLA-Permissive-2.0-webpki-root-certs.txt"),
+    include_bytes!("../licenses/MIT-PhosphorIcons.txt"),
 );
 
 /// The Mozilla root program's authorities as `webpki-root-certs` publishes
diff --git a/src/licence.rs b/src/licence.rs
index edb80a238..22c7bfb5c 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -1413,6 +1413,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 13.62s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... FAILED

failures:

---- licence::tests::the_gate_on_this_tree stdout ----
16:40:29   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
16:40:29   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
16:40:29   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
16:40:29   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
16:40:29   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
16:40:29   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
16:40:29   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
16:40:29   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
16:40:29   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
16:40:29   crate doom 0.1.0 (<dev>/toyos-tls/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
16:40:29   crate windows-sys 0.61.100 (<dev>/toyos-tls/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
16:40:29   crate windows-link 0.0.0 (<dev>/toyos-tls/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
16:40:29   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
16:40:29   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
16:40:29   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom

thread 'licence::tests::the_gate_on_this_tree' (227845399) panicked at src/licence.rs:1418:54:
called `Result::unwrap()` on an `Err` value: "1 refusal(s):\n  crate webpki-root-certs 1.0.9, the data of etc/ssl/cert.pem is \"CDLA-Permissive-2.0\": ships etc/ssl/CDLA-Permissive-2.0.txt beside them, which is not its LICENSE; pulled in by build::trust_roots"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    licence::tests::the_gate_on_this_tree

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 356 filtered out; finished in 6.09s

error: test failed, to rerun pass `-p toyos-build --lib`
MUTANT_EXIT=101
restored: []
control-m1-client-trusts-any-certificate.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m1-client-trusts-any-certificate.patch
diff --git a/tests/toyos-rust-tests/src/bin/https_get.rs b/tests/toyos-rust-tests/src/bin/https_get.rs
index e72b78dde..74540444b 100644
--- a/tests/toyos-rust-tests/src/bin/https_get.rs
+++ b/tests/toyos-rust-tests/src/bin/https_get.rs
@@ -27,7 +27,7 @@ fn main() -> ExitCode {
             _ => panic!("{roots} holds a PEM block that is not a certificate"),
         })
         .collect();
-    let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).build();
+    let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).disable_verification(true).build();
     let agent = ureq::Agent::config_builder().user_agent(USER_AGENT).tls_config(tls).build().new_agent();
 
     let response = match agent.get(url).call() {
--- run: cargo test --test toyos-build -- https_fetch
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.97s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:51:05 running 1 tests, 12 wide

16:51:05   RUN   https_fetch
16:51:05   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:51:12   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (8s)
16:51:12   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:51:18   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (5s)
16:51:18   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:51:24   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (6s)
16:51:45 FAIL https_fetch: the server named for another address: the client ended Some(0) and was to end 2 saying "https_get: refused not-valid-for-name":
https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5

16:51:45   FAIL  https_fetch  (21s)
16:51:45   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:51:45 host: fastest boot 16217 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
16:51:45 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:51:45 failures:
16:51:45     https_fetch: the server named for another address: the client ended Some(0) and was to end 2 saying "https_get: refused not-valid-for-name":

16:51:45 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (39.7s; workers: 19s building, 21s testing)
16:51:45 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-91465-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m2-client-sends-ureqs-own-user-agent.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m2-client-sends-ureqs-own-user-agent.patch
diff --git a/tests/toyos-rust-tests/src/bin/https_get.rs b/tests/toyos-rust-tests/src/bin/https_get.rs
index e72b78dde..ffde9d790 100644
--- a/tests/toyos-rust-tests/src/bin/https_get.rs
+++ b/tests/toyos-rust-tests/src/bin/https_get.rs
@@ -28,7 +28,8 @@ fn main() -> ExitCode {
         })
         .collect();
     let tls = TlsConfig::builder().root_certs(RootCerts::new_with_certs(&certs)).build();
-    let agent = ureq::Agent::config_builder().user_agent(USER_AGENT).tls_config(tls).build().new_agent();
+    let _ = USER_AGENT;
+    let agent = ureq::Agent::config_builder().tls_config(tls).build().new_agent();
 
     let response = match agent.get(url).call() {
         Ok(response) => response,
--- run: cargo test --test toyos-build -- https_fetch
    Finished `test` profile [optimized + debuginfo] target(s) in 2.35s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:51:51 running 1 tests, 12 wide

16:51:51   RUN   https_fetch
16:51:51   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:52:08   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (17s)
16:52:08   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:52:15   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (7s)
16:52:15   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:52:24   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (9s)
16:52:45 FAIL https_fetch: the trusted server saw Served { version: Some(TLSv1_3), path: "/body", user_agents: ["ureq/3.4.2"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"
16:52:45   FAIL  https_fetch  (22s)
16:52:45   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:52:45 host: fastest boot 19115 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
16:52:45 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:52:45 failures:
16:52:45     https_fetch: the trusted server saw Served { version: Some(TLSv1_3), path: "/body", user_agents: ["ureq/3.4.2"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"

16:52:45 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (54.8s; workers: 33s building, 22s testing)
16:52:45 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-62054-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m3-roots-file-holds-the-other-authority.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m3-roots-file-holds-the-other-authority.patch
diff --git a/tests/toyos.rs b/tests/toyos.rs
index cb377f0cc..13cef83a8 100644
--- a/tests/toyos.rs
+++ b/tests/toyos.rs
@@ -3215,7 +3215,7 @@ fn https_fetch() -> Result<(), String> {
     // test's own: the client reads the file its argument names.
     const ROOTS: &str = "etc/ssl/harness-cert.pem";
     let mut roots = toyos_build::build::trust_roots();
-    roots.extend_from_slice(trusted.pem().as_bytes());
+    roots.extend_from_slice(stranger.pem().as_bytes());
     let crate_path = compile::repo_root().join("tests/toyos-rust-tests");
     let bins = [JOB, KAT].map(|name| (name.to_string(), qemu::build_toyos_bin(qemu::SUITE_ARCH, &crate_path, name)));
     let options = BootOptions { extra_root_files: vec![(ROOTS.to_string(), roots)], ..Default::default() };
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 13.94s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:53:01 running 1 tests, 12 wide

16:53:01   RUN   https_fetch
16:53:01   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:53:06   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (5s)
16:53:06   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:53:09   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (3s)
16:53:09   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:53:14   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (4s)
16:53:25 FAIL https_fetch: the trusted server: the client ended Some(2) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":
https_get: refused unknown-issuer

16:53:25   FAIL  https_fetch  (11s)
16:53:25   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:53:25 host: fastest boot 9298 ms against the reference 1424 ms — liveness ceilings paid at 6.53x
16:53:25 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:53:25 failures:
16:53:25     https_fetch: the trusted server: the client ended Some(2) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":

16:53:25 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (23.6s; workers: 13s building, 11s testing)
16:53:25 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-48603-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m4-server-flips-one-body-byte.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m4-server-flips-one-body-byte.patch
diff --git a/tests/common/https.rs b/tests/common/https.rs
index 234fa7f7a..4c26d1aef 100644
--- a/tests/common/https.rs
+++ b/tests/common/https.rs
@@ -154,7 +154,9 @@ fn serve(config: &Arc<rustls::ServerConfig>, mut tcp: TcpStream, body: &[u8]) ->
     drop(request);
     let head = format!("HTTP/1.1 200 OK\r\nContent-Length: {}\r\nConnection: close\r\n\r\n", body.len());
     stream.write_all(head.as_bytes()).expect("the response's head");
-    stream.write_all(body).expect("the response's body");
+    let mut body = body.to_vec();
+    body[200_000] ^= 1;
+    stream.write_all(&body).expect("the response's body");
     stream.flush().expect("the response");
     conn.send_close_notify();
     while conn.wants_write() {
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 10.17s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:53:37 running 1 tests, 12 wide

16:53:37   RUN   https_fetch
16:53:37   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:53:41   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (4s)
16:53:41   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:53:45   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (4s)
16:53:45   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:53:52   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (7s)
16:54:11 FAIL https_fetch: the trusted server: the client ended Some(0) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":
https_get: ok bytes=393216 sha256=270c2e705cba2975810fb189e5454d60f9c40ab9555fd54703b4d5ba2939ec52

16:54:11   FAIL  https_fetch  (19s)
16:54:11   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:54:11 host: fastest boot 17252 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
16:54:11 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:54:11 failures:
16:54:11     https_fetch: the trusted server: the client ended Some(0) and was to end 0 saying "https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5":

16:54:11 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (33.6s; workers: 15s building, 19s testing)
16:54:11 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-57321-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m5-server-speaks-tls12-alone.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m5-server-speaks-tls12-alone.patch
diff --git a/tests/common/https.rs b/tests/common/https.rs
index 234fa7f7a..2911431da 100644
--- a/tests/common/https.rs
+++ b/tests/common/https.rs
@@ -89,7 +89,7 @@ impl Server {
     pub fn start(cert: (CertificateDer<'static>, PrivateKeyDer<'static>), body: Arc<Vec<u8>>) -> Result<Self, String> {
         let (chain, key) = cert;
         let config = rustls::ServerConfig::builder_with_provider(Arc::new(rustls::crypto::ring::default_provider()))
-            .with_safe_default_protocol_versions()
+            .with_protocol_versions(&[&rustls::version::TLS12])
             .and_then(|b| b.with_no_client_auth().with_single_cert(vec![chain], key))
             .map_err(|e| format!("the HTTPS server's configuration: {e}"))?;
         let config = Arc::new(config);
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 5.04s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:54:17 running 1 tests, 12 wide

16:54:17   RUN   https_fetch
16:54:17   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:54:21   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (4s)
16:54:21   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:54:23   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (2s)
16:54:23   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:54:27   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (3s)
16:54:36 FAIL https_fetch: the trusted server saw Served { version: Some(TLSv1_2), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"
16:54:36   FAIL  https_fetch  (9s)
16:54:36   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:54:36 host: fastest boot 6975 ms against the reference 1424 ms — liveness ceilings paid at 4.90x
16:54:36 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:54:36 failures:
16:54:36     https_fetch: the trusted server saw Served { version: Some(TLSv1_2), path: "/body", user_agents: ["toyos-build (https://github.com/ToyOSOrg/ToyOS)"] }, not a TLS 1.3 GET of /body as "toyos-build (https://github.com/ToyOSOrg/ToyOS)"

16:54:36 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (18.6s; workers: 10s building, 9s testing)
16:54:36 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-9642-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m7-a-known-answer-one-bit-off.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m7-a-known-answer-one-bit-off.patch
diff --git a/tests/toyos-rust-tests/src/bin/ring_kat.rs b/tests/toyos-rust-tests/src/bin/ring_kat.rs
index 03cd43f43..9e08d7499 100644
--- a/tests/toyos-rust-tests/src/bin/ring_kat.rs
+++ b/tests/toyos-rust-tests/src/bin/ring_kat.rs
@@ -35,7 +35,7 @@ fn hmac_sha256() {
     // RFC 4231, test case 2.
     let key = hmac::Key::new(hmac::HMAC_SHA256, b"Jefe");
     check("hmac-sha256 rfc4231 case 2", hmac::sign(&key, b"what do ya want for nothing?").as_ref(),
-        "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843");
+        "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3842");
 }
 
 fn x25519() {
--- run: cargo test --test toyos-build -- https_fetch
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 3.81s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:54:41 running 1 tests, 12 wide

16:54:41   RUN   https_fetch
16:54:41   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:54:43   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (2s)
16:54:43   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:54:46   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (2s)
16:54:46   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:54:48   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (3s)
16:54:57 FAIL https_fetch: ring_kat ended Some(101) (None):
ring_kat: sha256(abc) ok
ring_kat: sha384(abc) ok
ring_kat: sha512(abc) ok
ring_kat: sha256(a * 1000000) ok

thread 'main' (1) panicked at src/bin/ring_kat.rs:16:5:
assertion `left == right` failed: hmac-sha256 rfc4231 case 2
  left: [91, 220, 193, 70, 191, 96, 117, 78, 106, 4, 36, 38, 8, 149, 117, 199, 90, 0, 63, 8, 157, 39, 57, 131, 157, 236, 88, 185, 100, 236, 56, 67]
 right: [91, 220, 193, 70, 191, 96, 117, 78, 106, 4, 36, 38, 8, 149, 117, 199, 90, 0, 63, 8, 157, 39, 57, 131, 157, 236, 88, 185, 100, 236, 56, 66]
stack backtrace:
   0:      0x100000d4980 - _Unwind_Backtrace
   1:      0x100000bf7c3 - <<std[4345d1fde8fc8ae8]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[73b405bef30eeff1]::fmt::Display>::fmt
   2:      0x100000d8aa7 - core[73b405bef30eeff1]::fmt::write
   3:      0x100000c2fbb - <std[4345d1fde8fc8ae8]::sys::stdio::toyos::Stderr as core[73b405bef30eeff1]::io::write::Write>::write_fmt
   4:      0x100000a65a3 - std[4345d1fde8fc8ae8]::panicking::default_hook::{closure#0}
   5:      0x100000ba7ee - std[4345d1fde8fc8ae8]::panicking::default_hook
   6:      0x100000ba9a9 - std[4345d1fde8fc8ae8]::panicking::panic_with_hook
   7:      0x100000a665d - std[4345d1fde8fc8ae8]::panicking::panic_handler::{closure#0}
   8:      0x1000009ed59 - std[4345d1fde8fc8ae8]::sys::backtrace::__rust_end_short_backtrace::<std[4345d1fde8fc8ae8]::panicking::panic_handler::{closure#0}, !>
   9:      0x100000a6dc8 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
  10:      0x100000d91cb - core[73b405bef30eeff1]::panicking::panic_fmt
  11:      0x100000d913f - core[73b405bef30eeff1]::panicking::assert_failed_inner
  12:      0x1000005064f - core[73b405bef30eeff1]::panicking::assert_failed::<&[u8], &[u8]>
  13:      0x10000052826 - ring_kat[26b3dfa812e25309]::check
  14:      0x10000051698 - ring_kat[26b3dfa812e25309]::main
  15:      0x10000051186 - std[4345d1fde8fc8ae8]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  16:      0x10000050660 - std[4345d1fde8fc8ae8]::rt::lang_start::<()>::{closure#0}
  17:      0x100000ba236 - std[4345d1fde8fc8ae8]::rt::lang_start_internal
  18:      0x10000053171 - main
  19:      0x100000be323 - std[4345d1fde8fc8ae8]::sys::pal::toyos::start_rust
  20:      0x10000093d22 - _start

16:54:57   FAIL  https_fetch  (8s)
16:54:57   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:54:57 host: fastest boot 6912 ms against the reference 1424 ms — liveness ceilings paid at 4.85x
16:54:57 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:54:57 failures:
16:54:57     https_fetch: ring_kat ended Some(101) (None):

16:54:57 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (15.4s; workers: 7s building, 8s testing)
16:54:57 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-12706-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []
control-m8-rsa-signature-one-bit-off.log
head: e3b11331e5a71ee48cb21cb26e8ae39205c76b74
patch: m8-rsa-signature-one-bit-off.patch
diff --git a/tests/toyos-rust-tests/src/bin/ring_kat.rs b/tests/toyos-rust-tests/src/bin/ring_kat.rs
index 03cd43f43..da1b49e2e 100644
--- a/tests/toyos-rust-tests/src/bin/ring_kat.rs
+++ b/tests/toyos-rust-tests/src/bin/ring_kat.rs
@@ -181,7 +181,7 @@ fn signatures() {
          d30b3dc3ce0ba97fdf46ec192965dd9cd7f4a71b02b8cba3d442646eeec4af59\
          0824ca98d74fbca934d0b6867aa1991f3040b707e806de6e66b5934f05509bea",
     ), hex(
-        "51265d96f11ab338762891cb29bf3f1d2b3305107063f5f3245af376dfcc7027\
+        "51265d96f11ab338762891cb29bf3f1d2b3305107063f5f3245af376dfcc7026\
          d39365de70a31db05e9e10eb6148cb7f6425f0c93c4fb0e2291adbd22c77656a\
          fc196858a11e1c670d9eeb592613e69eb4f3aa501730743ac4464486c7ae68fd\
          509e896f63884e9424f69c1c5397959f1e52a368667a598a1fc90125273d9341\
--- run: cargo test --test toyos-build -- https_fetch
    Finished `test` profile [optimized + debuginfo] target(s) in 0.43s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:54:58 running 1 tests, 12 wide

16:54:58   RUN   https_fetch
16:54:58   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:55:02   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (3s)
16:55:02   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:55:05   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (3s)
16:55:05   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
16:55:09   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (4s)
16:55:27 FAIL https_fetch: ring_kat ended Some(101) (None):
ring_kat: sha256(abc) ok
ring_kat: sha384(abc) ok
ring_kat: sha512(abc) ok
ring_kat: sha256(a * 1000000) ok
ring_kat: hmac-sha256 rfc4231 case 2 ok
ring_kat: x25519 rfc7748 alice's public key ok
ring_kat: x25519 rfc7748 shared secret ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 ciphertext ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 tag ok
ring_kat: chacha20-poly1305 rfc8439 2.8.2 opened, and refused with a flipped tag bit
ring_kat: aes-128-gcm case 4 ciphertext ok
ring_kat: aes-128-gcm case 4 tag ok
ring_kat: aes-128-gcm case 4 opened, and refused with a flipped tag bit
ring_kat: aes-256-gcm case 16 ciphertext ok
ring_kat: aes-256-gcm case 16 tag ok
ring_kat: aes-256-gcm case 16 opened, and refused with a flipped tag bit
ring_kat: ed25519 rfc8032 test 1 public key ok
ring_kat: ed25519 rfc8032 test 1 signature ok
ring_kat: ecdsa p-256 rfc6979 a.2.5 verified, and refused for another message
ring_kat: ecdsa p-384 rfc6979 a.2.6 verified, and refused with a flipped signature bit

thread 'main' (1) panicked at src/bin/ring_kat.rs:226:46:
rsa pkcs#1 v1.5 sha-256 2048 cavp SigVer15 does not verify
stack backtrace:
   0:      0x100000d4980 - _Unwind_Backtrace
   1:      0x100000bf7c3 - <<std[4345d1fde8fc8ae8]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[73b405bef30eeff1]::fmt::Display>::fmt
   2:      0x100000d8aa7 - core[73b405bef30eeff1]::fmt::write
   3:      0x100000c2fbb - <std[4345d1fde8fc8ae8]::sys::stdio::toyos::Stderr as core[73b405bef30eeff1]::io::write::Write>::write_fmt
   4:      0x100000a65a3 - std[4345d1fde8fc8ae8]::panicking::default_hook::{closure#0}
   5:      0x100000ba7ee - std[4345d1fde8fc8ae8]::panicking::default_hook
   6:      0x100000ba9a9 - std[4345d1fde8fc8ae8]::panicking::panic_with_hook
   7:      0x100000a665d - std[4345d1fde8fc8ae8]::panicking::panic_handler::{closure#0}
   8:      0x1000009ed59 - std[4345d1fde8fc8ae8]::sys::backtrace::__rust_end_short_backtrace::<std[4345d1fde8fc8ae8]::panicking::panic_handler::{closure#0}, !>
   9:      0x100000a6dc8 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
  10:      0x100000d91cb - core[73b405bef30eeff1]::panicking::panic_fmt
  11:      0x10000051112 - ring_kat[26b3dfa812e25309]::verifies::<ring_kat[26b3dfa812e25309]::signatures::{closure#1}>
  12:      0x100000520dc - ring_kat[26b3dfa812e25309]::main
  13:      0x10000051186 - std[4345d1fde8fc8ae8]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  14:      0x10000050660 - std[4345d1fde8fc8ae8]::rt::lang_start::<()>::{closure#0}
  15:      0x100000ba236 - std[4345d1fde8fc8ae8]::rt::lang_start_internal
  16:      0x10000053171 - main
  17:      0x100000be323 - std[4345d1fde8fc8ae8]::sys::pal::toyos::start_rust
  18:      0x10000093d22 - _start

16:55:27   FAIL  https_fetch  (19s)
16:55:27   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:55:27 host: fastest boot 17045 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
16:55:27 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:55:27 failures:
16:55:27     https_fetch: ring_kat ended Some(101) (None):

16:55:27 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (29.0s; workers: 10s building, 19s testing)
16:55:27 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-15609-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch` (exit status: 1)
MUTANT_EXIT=1
restored: []

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

https_fetch at e3b11331e, cargo test --test toyos-build -- https_fetch --nocapture, EXIT=0, the whole log. Load averages before and after:

18:50  up 10 days,  6:34, 6 users, load averages: 42.53 73.61 82.29
18:50  up 10 days,  6:35, 6 users, load averages: 47.98 70.99 80.92
fetch2.log
    Finished `test` profile [optimized + debuginfo] target(s) in 0.72s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:50:17 running 1 tests, 12 wide

16:50:17   RUN   https_fetch
16:50:17   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.11s
16:50:23   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (6s)
16:50:23   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.05s
16:50:28   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (5s)
16:50:28   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.55s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.23s
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.31s
16:50:35 root: adding 'bin/diskserver' (753632 bytes)
16:50:35 root: adding 'bin/fileserver' (1464064 bytes)
16:50:35 root: adding 'bin/logkeeper' (910704 bytes)
16:50:35 root: adding 'bin/netstack' (1057984 bytes)
16:50:35 root: adding 'bin/supervisor' (1299480 bytes)
16:50:35 root: adding 'bin/test-runner' (700136 bytes)
16:50:35 root: adding 'bin/test_rs_https_get' (3516128 bytes)
16:50:35 root: adding 'bin/test_rs_ring_kat' (1116552 bytes)
16:50:35 root: adding 'etc/os-release' (287 bytes)
16:50:35 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
16:50:35 root: adding 'etc/ssl/cert.pem' (181603 bytes)
16:50:35 root: adding 'etc/ssl/harness-cert.pem' (182210 bytes)
16:50:35 root: adding 'etc/system.manifest' (518 bytes)
16:50:35   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (7s)
16:50:35 [qemu 0] Launching QEMU...
16:50:54 [serial 0] [--.--- cpu0 kernel] black box: 0x8000000 is this boot's, 16344 bytes for the next boot's loader
16:50:54 [serial 0] [--.--- cpu0 kernel] serial: 16550 loopback read 0xae (present)
16:50:54 [serial 0] [--.--- cpu0 kernel] PAT: IA32_PAT=0x0007040100070406, entry 4 = WC
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: memory map 0x7c3f8018+0xc30, kernel 0x7ae00000+0xd1c000, stack image+0x51c000+0x800000
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: kernel elf 0x7cf09018+0x25ad88, rsdp 0x7f77e014, boot pml4 0x7c3fb000
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: gop 0x0+0x0 0x0 stride 0 format 0
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: boot partition present=1 lba 264192 +69632 blocks guid [b8, 6c, 97, 7c, c9, 9b, c7, 4b, b6, 4c, e2, 05, b3, a9, c8, 74]
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: log partition guid [48, 50, 20, 3f, 06, 69, 31, 4d, ba, b2, 54, f1, 9c, 8f, 71, 52]
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: cmdline 0x7d164c98+68
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: root=dcdd4b0c7e7f4b3fb6cd0ba0da86ac34
16:50:54 [serial 0] [--.--- cpu0 kernel] boot: slot A, the one the slot table marks
16:50:54 [serial 0] [--.--- cpu0 kernel] random: the loader's seed is mixed into the generator's key
16:50:54 [serial 0] [--.--- cpu0 kernel] random: RDSEED is not mixed: CPUID.07H:EBX[18] is clear, so this CPU has no RDSEED
16:50:54 [serial 0] [--.--- cpu0 kernel] random: RDRAND is mixed into the generator's key
16:50:54 [serial 0] [--.--- cpu0 kernel] random: the generator is keyed from 2 source(s), and every random byte is its ChaCha20
16:50:54 [serial 0] [--.--- cpu0 kernel] pmm: the firmware map calls 4288393216 bytes usable in 114 entries; managed=4234149888 withheld=25165824 unaligned=29077504, and the three sum to it; frames=2019 reserved_frames=12 base=0x200000 span=3071
16:50:54 [serial 0] [--.--- cpu0 kernel] paging: the direct map covers 0x0..0x180000000
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: APIC at 0x7f778000 len=128 rev=3 oem="BOCHS" checksummed
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: FACP at 0x7f779000 len=244 rev=3 oem="BOCHS" checksummed
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0x7f777000 len=56 rev=1 oem="BOCHS" checksummed
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: MCFG at 0x7f776000 len=60 rev=1 oem="BOCHS" checksummed
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: DMAR at 0x7f775000 len=144 rev=1 oem="BOCHS" checksummed
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0x7f77e014
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: MADT cpus=[0, 1]
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: reset register SystemIO 0xcf9 <- 0x0f
16:50:54 [serial 0] [--.--- cpu0 kernel] LAPIC: x2APIC enabled (ID 0)
16:50:54 [serial 0] [--.--- cpu0 kernel] control_regs: cpu0 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
16:50:54 [serial 0] [--.--- cpu0 kernel] idt: 256 vectors, 36 declared, 220 unclaimed, table at 0xffff80007b2cb590 limit 0xfff
16:50:54 [serial 0] [--.--- cpu0 kernel] control_regs: no performance request is declared: no HWP (CPUID.6:EAX[7])
16:50:54 [serial 0] [--.--- cpu0 kernel] fpu: cpu0 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
16:50:54 [serial 0] [--.--- cpu0 kernel] percpu: BSP cpu_id=0 lapic_id=0
16:50:54 [serial 0] [--.--- cpu0 kernel] mmio: 0xfec00000+0x20 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [--.--- cpu0 kernel] ioapic: id=0 at 0xfec00000 ver=0x20 gsi 0..23 masked 24/24
16:50:54 [serial 0] [--.--- cpu0 kernel] ioapic: iso bus:irq->gsi [0:0->2 edge/high, 0:5->5 level/high, 0:9->9 level/high, 0:10->10 level/high, 0:11->11 level/high]
16:50:54 [serial 0] [--.--- cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
16:50:54 [serial 0] [--.--- cpu0 kernel] symbols: loaded 6258 kernel symbols
16:50:54 [serial 0] [--.--- cpu0 kernel] ACPI: HPET at 0xfed00000
16:50:54 [serial 0] [--.--- cpu0 kernel] mmio: 0xfed00000+0x1000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [--.--- cpu0 kernel] clock: HPET at 0xfed00000 enabled, period=10000000fs, counter reads 1800, calibrating over 5000000 ticks
16:50:54 [serial 0] [16.730 cpu0 kernel] TSC: 999MHz (period=1000660fs, calibrated over 50ms)
16:50:54 [serial 0] [16.731 cpu0 kernel] clock: TSC measured 999340435Hz against the HPET; CPUID leaves 15H and 16H stating no frequency, so nothing independent confirms it
16:50:54 [serial 0] [16.732 cpu0 kernel] ACPI: the FADT puts the RTC century register at CMOS 0x32
16:50:54 [serial 0] [16.734 cpu0 kernel] clock: the RTC reads 2026-10-09 16:50:52 UTC
16:50:54 [serial 0] [16.749 cpu0 kernel] LAPIC timer: 10031524 ticks/10ms, so 1003152400Hz
16:50:54 [serial 0] [16.750 cpu0 kernel] Boot: CPU ready (76ms)
16:50:54 [serial 0] [16.751 cpu0 kernel] ACPI: RSDP at 0x7f77e014
16:50:54 [serial 0] [16.751 cpu0 kernel] ACPI: MCFG found at 0x7f776000
16:50:54 [serial 0] [16.752 cpu0 kernel] ACPI: ECAM base address: 0xe0000000
16:50:54 [serial 0] [16.752 cpu0 kernel] mmio: 0xe0000000+0x10000000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [16.752 cpu0 kernel] PCI: Enumerating devices...
16:50:54 [serial 0] [16.753 cpu0 kernel]   PCI 00:00.0 [0600] vendor=8086 device=29c0 prog_if=00 bars=[]
16:50:54 [serial 0] [16.753 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0xc00000c000]
16:50:54 [serial 0] [16.753 cpu0 kernel]   PCI 00:02.0 [0108] vendor=1b36 device=0010 prog_if=02 bars=[bar0=0xc000010000 bar4=0x80044000]
16:50:54 [serial 0] [16.754 cpu0 kernel]   PCI 00:03.0 [0200] vendor=1af4 device=1041 prog_if=00 bars=[bar1=0x80043000 bar4=0xc000000000]
16:50:54 [serial 0] [16.754 cpu0 kernel]   PCI 00:04.0 [0401] vendor=1af4 device=1059 prog_if=00 bars=[bar1=0x80042000 bar4=0xc000004000]
16:50:54 [serial 0] [16.754 cpu0 kernel]   PCI 00:05.0 [0780] vendor=1af4 device=1043 prog_if=00 bars=[bar1=0x80041000 bar4=0xc000008000]
16:50:54 [serial 0] [16.754 cpu0 kernel]   PCI 00:1f.0 [0601] vendor=8086 device=2918 prog_if=00 bars=[]
16:50:54 [serial 0] [16.755 cpu0 kernel]   PCI 00:1f.2 [0106] vendor=8086 device=2922 prog_if=01 bars=[bar4=none(it is an I/O BAR at port 0x6040, not memory) bar5=0x80040000]
16:50:54 [serial 0] [16.755 cpu0 kernel]   PCI 00:1f.3 [0c05] vendor=8086 device=2930 prog_if=00 bars=[bar4=none(it is an I/O BAR at port 0x6000, not memory)]
16:50:54 [serial 0] [16.760 cpu0 kernel] PCI: Enumeration complete, 9 functions.
16:50:54 [serial 0] [16.798 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x80000000..0x80100000, mem 0xc000000000..0xc000100000, mem 0x80100000..0xe0000000, mem 0xc000100000..0xe000000000
16:50:54 [serial 0] [16.800 cpu0 kernel] pcidev: 9 functions; 2 run(s) of 2 MiB or more below 0xfec00000 and 3 from 0x100000000
16:50:54 [serial 0] [16.801 cpu0 kernel] pcidev:   0x80045000..0xe0000000 (1535 MiB)
16:50:54 [serial 0] [16.801 cpu0 kernel] pcidev:   0xf0000000..0xfec00000 (236 MiB)
16:50:54 [serial 0] [16.801 cpu0 kernel] pcidev:   0x180000000..0xc000000000 (780288 MiB)
16:50:54 [serial 0] [16.802 cpu0 kernel] pcidev:   0xc000012000..0xfd00000000 (249855 MiB)
16:50:54 [serial 0] [16.802 cpu0 kernel] pcidev:   0x10000000000..0xffffffffffffffff (17592184995839 MiB)
16:50:54 [serial 0] [16.803 cpu0 kernel] iommu: DMAR haw=48 flags=0x01 intr_remap=y x2apic_opt_out=n dma_ctrl_opt_in=n
16:50:54 [serial 0] [16.803 cpu0 kernel] mmio: 0xfed90000+0x1000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [16.804 cpu0 kernel] iommu: unit0 @0xfed90000 seg=0 pci_all=n ver=1.0 cap=0x80d2008c222f0686 ecap=0x0000000000f00f4a gsts=0x00000000 aw=48 sagaw=0x06 mgaw=48 nd=65536 sps2m=y cm=y psi=y nfr=1 fro=0x220 qi=y ir=y eim=n pt=y coherent=n sc=n
16:50:54 [serial 0] [16.805 cpu0 kernel] iommu: unit0 scope ioapic ff:00.0 id=0
16:50:54 [serial 0] [16.805 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:00.0 id=0
16:50:54 [serial 0] [16.805 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:01.0 id=0
16:50:54 [serial 0] [16.805 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:02.0 id=0
16:50:54 [serial 0] [16.805 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:03.0 id=0
16:50:54 [serial 0] [16.806 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:04.0 id=0
16:50:54 [serial 0] [16.806 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:05.0 id=0
16:50:54 [serial 0] [16.806 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.0 id=0
16:50:54 [serial 0] [16.806 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.2 id=0
16:50:54 [serial 0] [16.806 cpu0 kernel] iommu: unit0 scope pci-endpoint 00:1f.3 id=0
16:50:54 [serial 0] [16.822 cpu0 kernel] iommu: DMAR describes 1 units and 0 reserved regions, 0 of them inside the identity domain
16:50:54 [serial 0] [16.825 cpu0 kernel] iommu: identity domain aw=48 covers 0x0..0x180000000 in 3072 2 MiB leaves
16:50:54 [serial 0] [16.848 cpu0 kernel] iommu: unit0 @0xfed90000 translating gsts=0xc7000000 tes=y qies=y ires=y cfis=n irt=0xc0c000 irta=0xc0c007 eime=n root=0xc08000 domain=1 aw=48 streams=9
16:50:54 [serial 0] [16.858 cpu0 kernel] file cache: budget 16152 pages (63 MiB)
16:50:54 [serial 0] [16.858 cpu0 kernel] gpt: the boot volume names 3F205048-6906-4D31-BAB2-54F19C8F7152 as the log partition
16:50:54 [serial 0] [16.858 cpu0 kernel] gpt: firmware booted us from partition 7C976CB8-9BC9-4BC7-B64C-E205B3A9C874 at LBA 264192+69632
16:50:54 [serial 0] [16.859 cpu0 kernel] Boot: peripherals ready (107ms)
16:50:54 [serial 0] [16.859 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
16:50:54 [serial 0] [16.883 cpu1 kernel] control_regs: cpu1 cr0=0x80010033 cr4=0x00300668 efer=0x0d01 smep smap nx
16:50:54 [serial 0] [16.884 cpu1 kernel] fpu: cpu1 xsave=0 osxsave=0 xcr0=0x0 cpuid.d.0=(0x0,0,0) cpuid.d.1.eax=0x0
16:50:54 [serial 0] [16.885 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
16:50:54 [serial 0] [16.892 cpu0 kernel] SMP: cpu1 tsc=16872183000 inside the BSP's 16849946000..16881004000 (31058000 cycles wide)
16:50:54 [serial 0] [16.893 cpu0 kernel] SMP: AP cpu1 lapic=1 online
16:50:54 [serial 0] [16.893 cpu0 kernel] SMP: 2 of 2 MADT cpus online, 1 of 1 APs inside the BSP's TSC bracket
16:50:54 [serial 0] [16.894 cpu0 kernel] control_regs: 2 of 2 cpus hold cr0=0x80010033 cr4=0x00300668 efer=0x0901
16:50:54 [serial 0] [16.896 cpu0 kernel] root: mounted read-only from memory at 0x7c409000+0xb00000, filesystem dcdd4b0c7e7f4b3fb6cd0ba0da86ac34, 2816 blocks
16:50:54 [serial 0] [16.897 cpu0 kernel] Boot: subsystems ready (37ms)
16:50:54 [serial 0] [16.926 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=6ms relocs=0ms deps=0ms tls=15ms total=27ms)
16:50:54 [serial 0] [16.927 cpu0 kernel] spawned /system/bin/supervisor pid=0
16:50:54 [serial 0] [16.927 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
16:50:54 [serial 0] [16.928 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
16:50:54 [serial 0] [16.929 cpu0 kernel] xHCI: BAR0=0xc00000c000
16:50:54 [serial 0] [16.930 cpu0 kernel] iommu: irte4 source=00:01.0 p=1 sid=0x0008 svt=1 sq=0 vector=0x21 apic=0x0 dst=0x0 trigger=edge
16:50:54 [serial 0] [16.937 cpu0 kernel] mmio: 0xc00000f000+0x1000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [16.939 cpu0 kernel] PCI 00:01.0: msix address=0xfee00098 data=0x00000000
16:50:54 [serial 0] [16.939 cpu0 kernel] xHCI: MSI-X enabled (vector 0x21)
16:50:54 [serial 0] [16.940 cpu0 kernel] mmio: 0xc00000c000+0x10000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [16.944 cpu0 kernel] xHCI: max_slots=64 max_ports=8 ctx_size=32 pagesize=0x1
16:50:54 [serial 0] [16.944 cpu0 kernel] xHCI: dma 2048 KiB: scratchpad=0 device blocks=64 of 12288 B (max_slots=64)
16:50:54 [serial 0] [16.945 cpu0 kernel] xHCI: no USB Legacy Support capability (xECP=0x8), nothing to hand over
16:50:54 [serial 0] [16.946 cpu0 kernel] xHCI: USB 2.0 on ports 5..=8
16:50:54 [serial 0] [16.947 cpu0 kernel] xHCI: USB 3.0 on ports 1..=4
16:50:54 [serial 0] [16.947 cpu0 kernel] xHCI: 4 USB2 and 4 USB3 port register(s) of 8 named, 0 capability(ies) refused
16:50:54 [serial 0] [16.957 cpu0 kernel] xHCI: controller reset
16:50:54 [serial 0] [16.958 cpu0 kernel] iommu: domain2 root=0xc0d000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
16:50:54 [serial 0] [16.960 cpu0 kernel] iommu: domain2 maps 0x1a00000..0x1c00000 at 0x400000000000
16:50:54 [serial 0] [16.961 cpu0 kernel] iommu: 00:01.0 moves to domain2
16:50:54 [serial 0] [16.962 cpu0 kernel] xHCI: controller started
16:50:54 [serial 0] [16.963 cpu0 kernel] xHCI: 8/8 root-hub ports powered (PPC=0)
16:50:54 [serial 0] [17.066 cpu0 kernel] xHCI: port 5 connected
16:50:54 [serial 0] [17.071 cpu0 kernel] xHCI: port 5 enabled, speed=3
16:50:54 [serial 0] [17.072 cpu0 kernel] xHCI: slot 1 enabled (dma +0x30000)
16:50:54 [serial 0] [17.076 cpu0 kernel] xHCI: device addressed
16:50:54 [serial 0] [17.076 cpu0 kernel] xHCI: device class=0x0 vendor=0627 product=0001
16:50:54 [serial 0] [17.076 cpu0 kernel] xHCI: HID keyboard iface=0 ep=0x81 max_pkt=8 interval=7 dci=3
16:50:54 [serial 0] [17.077 cpu0 kernel] xHCI: configuration set
16:50:54 [serial 0] [17.077 cpu0 kernel] xHCI: endpoint configured
16:50:54 [serial 0] [17.078 cpu0 kernel] xHCI: USB keyboard ready on slot 1, int_ring +0x30000
16:50:54 [serial 0] [17.079 cpu0 kernel] xHCI: 1 controller(s), 1 HID device(s)
16:50:54 [serial 0] [17.079 cpu0 kernel] usb-storage: 0 device(s)
16:50:54 [serial 0] [18.585 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
16:50:54 [serial 0] [18.600 cpu0 kernel] root: the partition ROOT was read from, 8888DC74-5648-4CFB-9C14-D6583F82057B, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
16:50:54 [serial 0] [18.621 cpu0 kernel] Boot: storage ready (1693ms)
16:50:54 [serial 0] [18.623 cpu0 kernel] i8042: FADT rev 3 iapc_boot_arch=0x0002, bit 1 (8042) set — probing either way
16:50:54 [serial 0] [18.624 cpu0 kernel] i8042: ok selftest=0x55 cfg=0x77->0x64 port1=ok port2=ok
16:50:54 [serial 0] [18.625 cpu0 kernel] iommu: irte5 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
16:50:54 [serial 0] [18.633 cpu0 kernel] ioapic: gsi 1 on id=0 rte=0x000b000000010024
16:50:54 [serial 0] [18.633 cpu0 kernel] iommu: irte6 source=ff:00.0 p=1 sid=0xff00 svt=1 sq=0 vector=0x24 apic=0x0 dst=0x0 trigger=edge
16:50:54 [serial 0] [18.634 cpu0 kernel] ioapic: gsi 12 on id=0 rte=0x000d000000010024
16:50:54 [serial 0] [18.635 cpu0 kernel] i8042: kbd set2+xlat (readback 0x41) scanning on, GSI 1 -> vec 0x24 apic 0 on
16:50:54 [serial 0] [18.635 cpu0 kernel] i8042: aux rate=100 res=8/mm, GSI 12 -> vec 0x24 apic 0 on
16:50:54 [serial 0] [18.657 cpu0 kernel] acpi: the ACPI row: PM1a events 0x600+4, GPE0 0x620+16, SCI gsi 9 level/high, the fixed-hardware power button, embedded controller none (the ECDT is unusable: Absent); the firmware handed over in ACPI mode
16:50:54 [serial 0] [18.659 cpu0 kernel] acpi: the Global Lock is the FACS's at 0x7f7dd010, in memory the firmware's map types 10
16:50:54 [serial 0] [18.659 cpu0 kernel] virtio-console: found at PCI 00:05.0
16:50:54 [serial 0] [18.659 cpu0 kernel] iommu: domain3 root=0xc10000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
16:50:54 [serial 0] [18.660 cpu0 kernel] iommu: domain3 maps 0x1c00000..0x1e00000 at 0x400000000000
16:50:54 [serial 0] [18.660 cpu0 kernel] iommu: 00:05.0 moves to domain3
16:50:54 [serial 0] [18.660 cpu0 kernel] VirtIO: PCI 00:05.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
16:50:54 [serial 0] [18.661 cpu0 kernel] mmio: 0xc000008000+0x4000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [18.663 cpu0 kernel] VirtIO: PCI 00:05.0 features device=0x10330000004 negotiated=0x300000000 access_platform=y
16:50:54 [serial 0] [18.744 cpu0 kernel] virtio-console: initialized (8 RX bufs of 256 bytes, TX buf 4096 bytes)
16:50:54 [serial 0] [18.744 cpu0 kernel] virtio-sound: found at PCI 00:04.0
16:50:54 [serial 0] [18.744 cpu0 kernel] VirtIO: PCI 00:04.0 names BAR 0 and firmware assigned it no address — skipping every capability in it
16:50:54 [serial 0] [18.746 cpu0 kernel] mmio: 0xc000004000+0x4000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [18.746 cpu0 kernel] VirtIO: PCI 00:04.0 features device=0x10379000000 negotiated=0x300000000 access_platform=y
16:50:54 [serial 0] [18.747 cpu0 kernel] virtio-sound: 0 jacks, 1 streams, 0 chmaps
16:50:54 [serial 0] [18.747 cpu0 kernel] iommu: domain4 root=0xc13000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
16:50:54 [serial 0] [18.748 cpu0 kernel] iommu: domain4 maps 0x1e00000..0x2000000 at 0x400000000000
16:50:54 [serial 0] [18.749 cpu0 kernel] iommu: domain4 maps 0x2000000..0x2200000 at 0x400000200000
16:50:54 [serial 0] [18.750 cpu0 kernel] iommu: 00:04.0 moves to domain4
16:50:54 [serial 0] [18.752 cpu0 kernel] iommu: irte7 source=00:04.0 p=1 sid=0x0020 svt=1 sq=0 vector=0x23 apic=0x0 dst=0x0 trigger=edge
16:50:54 [serial 0] [18.753 cpu0 kernel] mmio: 0x80042000+0x1000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [18.753 cpu0 kernel] PCI 00:04.0: msix address=0xfee000f8 data=0x00000000
16:50:54 [serial 0] [18.753 cpu0 kernel] virtio-sound: MSI-X vector 0x23 on table entry 0
16:50:54 [serial 0] [18.754 cpu0 kernel] virtio-sound: bound, 8 periods of 512 bytes, doorbells at 0x0/0x4/0x8
16:50:54 [serial 0] [18.754 cpu0 kernel] GPU: none found, running headless
16:50:54 [serial 0] [18.754 cpu0 kernel] Boot: devices ready (132ms)
16:50:54 [serial 0] [18.756 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
16:50:54 [serial 0] [18.757 cpu0 kernel] Boot: complete (2083ms)
16:50:54 [serial 0] [18.759 cpu0 kernel] boot: IA32_TSC_ADJUST not on this CPU
16:50:54 [serial 0] [18.759 cpu0 kernel] boot: power-on to loader 14699 ms, loader 1820 ms (ROOT read 13 ms), kernel to Boot: complete 2236 ms
16:50:54 [serial 0] [18.762 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
16:50:54 [serial 0] [18.763 cpu1 kernel] counters: cpu1 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
16:50:54 [serial 0] [18.763 cpu1 kernel] CPU 1: joining scheduler
16:50:54 [serial 0] [18.776 cpu1 kernel] i8042: armed at 1961ms, idle at 2102ms, 0 interrupts — the pin has never asserted (kbd GSI 1, aux GSI 12)
16:50:54 [serial 0] [19.034 cpu0 kernel] iommu: domain5 root=0xc16000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
16:50:54 [serial 0] [19.034 cpu0 kernel] iommu: irte0 source=00:02.0 p=1 sid=0x0010 svt=1 sq=0 vector=0x28 apic=0x0 dst=0x0 trigger=edge
16:50:54 [serial 0] [19.036 cpu0 kernel] mmio: 0x80044000+0x1000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [19.036 cpu0 kernel] PCI 00:02.0: msix address=0xfee00018 data=0x00000000
16:50:54 [serial 0] [19.043 cpu0 kernel] mmio: 0xc000010000+0x2000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [19.104 cpu0 kernel] mmio: 0xc000200000+0x200000 PAT Uncacheable (MTRR UC)
16:50:54 [serial 0] [19.104 cpu0 kernel] pcidev: PCI 00:02.0 BAR 0 (0x2000 bytes) placed at 0xc000200000 — inside firmware's mem 0xc000100000; its +0x0 dword answers 0x0f0107ff there, and answered 0x0f0107ff from 0xc000010000, where firmware put it
16:50:54 [serial 0] [19.105 cpu0 kernel] iommu: 00:02.0 moves to domain5
16:50:54 [serial 0] [19.105 cpu0 kernel] pcidev: PCI 00:02.0 [1b36:0010] handed over on slot 0, vector 0x28
16:50:54 [serial 0] [19.136 cpu0 kernel] spawn: /system/bin/diskserver pid=2 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=3ms total=11ms)
16:50:54 [serial 0] [19.162 cpu1 kernel] shm: 0xc000200000 mapped Uncacheable into pid 2
16:50:54 [serial 0] [19.193 cpu1 kernel] iommu: domain5 maps 0x4a00000..0x4c00000 at 0x400002000000
16:50:54 [serial 0] [19.205 cpu1 kernel] pcidev: slot 0 took its first message on vector 0x28
16:50:54 [serial 0] [19.206 cpu0 kernel] spawn: /system/bin/fileserver pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=3ms total=5ms)
16:50:54 [serial 0] [19.234 cpu0 kernel] spawn: /system/bin/fileserver pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=3ms total=4ms)
16:50:54 [serial 0] [19.241 cpu0 kernel] spawn: /system/bin/fileserver pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=3ms)
16:50:55 [serial 0] [20.032 cpu0 kernel] spawn: /system/bin/logkeeper pid=6 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=14ms total=16ms)
16:50:55 [serial 0] [20.037 cpu0 kernel] iommu: domain6 root=0xc19000 aw=48 mgaw=48 addresses from 0x400000000000 to 0x1000000000000
16:50:55 [serial 0] [20.037 cpu0 kernel] iommu: irte1 source=00:03.0 p=1 sid=0x0018 svt=1 sq=0 vector=0x29 apic=0x0 dst=0x0 trigger=edge
16:50:55 [serial 0] [20.037 cpu0 kernel] mmio: 0x80043000+0x1000 PAT Uncacheable (MTRR UC)
16:50:55 [serial 0] [20.037 cpu0 kernel] PCI 00:03.0: msix address=0xfee00038 data=0x00000000
16:50:55 [serial 0] [20.039 cpu0 kernel] mmio: 0xc000000000+0x4000 PAT Uncacheable (MTRR UC)
16:50:55 [serial 0] [20.042 cpu0 kernel] mmio: 0xc000400000+0x200000 PAT Uncacheable (MTRR UC)
16:50:55 [serial 0] [20.042 cpu0 kernel] pcidev: PCI 00:03.0 BAR 4 (0x4000 bytes) placed at 0xc000400000 — inside firmware's mem 0xc000100000; its +0x4 dword answers 0x00000103 there, and answered 0x00000103 from 0xc000000000, where firmware put it
16:50:55 [serial 0] [20.042 cpu0 kernel] iommu: 00:03.0 moves to domain6
16:50:55 [serial 0] [20.042 cpu0 kernel] pcidev: PCI 00:03.0 [1af4:1041] handed over on slot 1, vector 0x29
16:50:55 [serial 0] [20.159 cpu0 kernel] spawn: /system/bin/netstack pid=7 unresolved=0 (layout=42ms relocs=0ms deps=0ms tls=40ms total=82ms)
16:50:55 [serial 0] [20.183 cpu0 kernel] shm: 0xc000400000 mapped Uncacheable into pid 7
16:50:55 [serial 0] [20.186 cpu0 kernel] iommu: domain6 maps 0xf200000..0xf400000 at 0x400002000000
16:50:55 [serial 0] [20.204 cpu0 kernel] pcidev: slot 1 took its first message on vector 0x29
16:50:55 [serial 0] [20.239 cpu0 kernel] spawn: /system/bin/test-runner pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=20ms total=21ms)
16:50:55 [serial 0] [18.923 supervisor] supervisor: build e3b11331e5a71ee48cb21cb26e8ae39205c76b74 clean, committed 2026-10-09 16:50:12 UTC, toolchain 07c10081f23935b3, x86_64
16:50:55 [serial 0] [19.155 supervisor] supervisor: started diskserver
16:50:55 [serial 0] [19.206 supervisor] supervisor: started fileserver
16:50:55 [serial 0] [19.234 supervisor] supervisor: started fileserver
16:50:55 [serial 0] [19.241 supervisor] supervisor: started fileserver
16:50:55 [serial 0] [19.466 diskserver] diskserver: NVMe up: 4 I/O queues of 63 commands, volatile write cache present, so a flush issues Flush, 512-byte sectors, 499712 sectors
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition C5259C8C-DBD5-403D-84F1-71F7D8CB11CE at block 256, 32768 blocks
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition 7C976CB8-9BC9-4BC7-B64C-E205B3A9C874 at block 33024, 8704 blocks
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition AF8C0AA7-22D7-419D-9728-235BF5C08592 at block 41728, 256 blocks
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition 3F205048-6906-4D31-BAB2-54F19C8F7152 at block 41984, 8704 blocks
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition 9B9770F4-F937-4775-BFC7-DDA3AED6AB33 at block 50688, 8704 blocks
16:50:55 [serial 0] [19.739 diskserver] diskserver: partition 8888DC74-5648-4CFB-9C14-D6583F82057B is the ROOT this machine runs from; refusing every session to it
16:50:55 [serial 0] [19.746 diskserver] diskserver: session 0 opened 7C976CB8-9BC9-4BC7-B64C-E205B3A9C874 (8704 blocks)
16:50:55 [serial 0] [19.747 diskserver] diskserver: session 1 opened 3F205048-6906-4D31-BAB2-54F19C8F7152 (8704 blocks)
16:50:55 [serial 0] [19.758 diskserver] diskserver: session 2 opened C5259C8C-DBD5-403D-84F1-71F7D8CB11CE (32768 blocks)
16:50:55 [serial 0] [19.761 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
16:50:55 [serial 0] [19.762 fileserver] fileserver: Log serving /log — FAT32, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
16:50:55 [serial 0] [19.766 fileserver] fileserver: FAT32 mounted, 35651584 bytes, 512-byte sectors, 512-byte clusters
16:50:55 [serial 0] [19.767 fileserver] fileserver: Boot serving /boot — FAT32 read-only, 0 files open; cache 1 blocks (0 dirty), 2 of 3 reads hit
16:50:55 [serial 0] [19.869 fileserver] fileserver: block 0 designates this partition for ToyOS; formatting it
16:50:55 [serial 0] [19.892 fileserver] fileserver: Data serving /apps, /config, /home, /state — bcachefs, 0 names, 0 files open; cache 4 blocks (4 dirty), 6 of 8 reads hit
16:50:55 [serial 0] [20.032 supervisor] supervisor: started logkeeper
16:50:55 [serial 0] [20.147 logkeeper] logkeeper: this boot's kernel log is /log/2026-10-09-165055.log (2026-10-09 16:50:55 UTC)
16:50:55 [serial 0] [20.181 netstack] netstack: this claim answers 4096 bytes of configuration space and refuses every access outside them
16:50:55 [serial 0] [20.185 netstack] netstack: VirtIO: PCI 00:03.0 features device=0x10330bf8024 negotiated=0x300000020 access_platform=y
16:50:55 [serial 0] [20.197 netstack] netstack: MAC 52:54:00:12:34:56
16:50:55 [serial 0] [20.203 netstack] netstack: DHCP: lease 10.0.2.15/24 from 10.0.2.2, gateway 10.0.2.2, dns [10.0.2.3], 5 ms after netstack came up
16:50:55 [serial 0] [20.203 netstack] netstack: ready, at most 103 piped connections (4 MiB each of 4038 MiB total)
16:50:55 [serial 0] [20.205 supervisor] supervisor: started netstack
16:50:55 [serial 0] [20.285 supervisor] supervisor: started test-runner
16:50:55 [serial 0] [20.294 test-runner] ===READY===
16:50:55 [qemu] Reached ===READY===
16:50:56 [serial 0] [21.025 netstack] netstack: mDNS: no host answered for toyos-t14.local; this machine answers as it
16:50:56 [serial 0] [21.302 cpu0 kernel] spawn: /system/bin/test_rs_ring_kat pid=9 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=7ms total=10ms)
16:50:56 [serial 0] [21.273 test-runner] ===TEST_START test_rs_ring_kat===
16:50:56 [serial 0] [21.386 cpu1 kernel] exit: test_rs_ring_kat pid=9 code=0 cpu=76ms peak=4MB allocs=3 frees=0 syscalls=12 syscall_wall=2ms 6=3 14=1 50=1 51=1 63=2 72=1 73=1 91=1 106=1
16:50:56 [serial 0] [21.313 test-runner pid=9] ring_kat: sha256(abc) ok
16:50:56 [serial 0] [21.315 test-runner pid=9] ring_kat: sha384(abc) ok
16:50:56 [serial 0] [21.315 test-runner pid=9] ring_kat: sha512(abc) ok
16:50:56 [serial 0] [21.325 test-runner pid=9] ring_kat: sha256(a * 1000000) ok
16:50:56 [serial 0] [21.326 test-runner pid=9] ring_kat: hmac-sha256 rfc4231 case 2 ok
16:50:56 [serial 0] [21.332 test-runner pid=9] ring_kat: x25519 rfc7748 alice's public key ok
16:50:56 [serial 0] [21.335 test-runner pid=9] ring_kat: x25519 rfc7748 shared secret ok
16:50:56 [serial 0] [21.340 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 ciphertext ok
16:50:56 [serial 0] [21.340 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 tag ok
16:50:56 [serial 0] [21.343 test-runner pid=9] ring_kat: chacha20-poly1305 rfc8439 2.8.2 opened, and refused with a flipped tag bit
16:50:56 [serial 0] [21.347 test-runner pid=9] ring_kat: aes-128-gcm case 4 ciphertext ok
16:50:56 [serial 0] [21.347 test-runner pid=9] ring_kat: aes-128-gcm case 4 tag ok
16:50:56 [serial 0] [21.348 test-runner pid=9] ring_kat: aes-128-gcm case 4 opened, and refused with a flipped tag bit
16:50:56 [serial 0] [21.349 test-runner pid=9] ring_kat: aes-256-gcm case 16 ciphertext ok
16:50:56 [serial 0] [21.349 test-runner pid=9] ring_kat: aes-256-gcm case 16 tag ok
16:50:56 [serial 0] [21.349 test-runner pid=9] ring_kat: aes-256-gcm case 16 opened, and refused with a flipped tag bit
16:50:56 [serial 0] [21.350 test-runner pid=9] ring_kat: ed25519 rfc8032 test 1 public key ok
16:50:56 [serial 0] [21.353 test-runner pid=9] ring_kat: ed25519 rfc8032 test 1 signature ok
16:50:56 [serial 0] [21.369 test-runner pid=9] ring_kat: ecdsa p-256 rfc6979 a.2.5 verified, and refused for another message
16:50:56 [serial 0] [21.381 test-runner pid=9] ring_kat: ecdsa p-384 rfc6979 a.2.6 verified, and refused with a flipped signature bit
16:50:56 [serial 0] [21.384 test-runner pid=9] ring_kat: rsa pkcs#1 v1.5 sha-256 2048 cavp SigVer15 verified, and refused with a flipped signature bit
16:50:56 [serial 0] [21.385 test-runner pid=9] ring_kat: rsa-pss sha-256 2048 cavp SigVerPSS verified, and refused with a flipped signature bit
16:50:56 [serial 0] [21.385 test-runner pid=9] ring_kat: SystemRandom filled two different 32-byte buffers
16:50:56 [serial 0] [21.385 test-runner pid=9] ring_kat: ok
16:50:56 [serial 0] [21.393 test-runner] ===TEST_END test_rs_ring_kat exit=0===
16:50:56 [serial 0] [21.465 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=10 unresolved=0 (layout=3ms relocs=0ms deps=0ms tls=5ms total=9ms)
16:50:57 [serial 0] [21.451 test-runner] ===TEST_START test_rs_https_get===
16:50:57 [serial 0] [21.868 cpu0 kernel] exit: test_rs_https_get pid=10 code=0 cpu=258ms peak=22MB allocs=13 frees=0 syscalls=82 syscall_wall=141ms 0=10 1=13 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=11 72=1 73=1 75=3 76=1 91=1 99=1 102=7 103=1 105=4 106=5
16:50:57 [serial 0] [21.865 test-runner pid=10] https_get: ok bytes=393216 sha256=0d059044181278c70b3b298ab1c336089c57d7fac8d467e32e700c60f0cab8c5
16:50:57 [serial 0] [21.868 test-runner] ===TEST_END test_rs_https_get exit=0===
16:50:57 [serial 0] [21.906 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=11 unresolved=0 (layout=1ms relocs=0ms deps=0ms tls=2ms total=13ms)
16:50:57 [serial 0] [21.892 test-runner] ===TEST_START test_rs_https_get===
16:50:57 [serial 0] [22.107 cpu0 kernel] exit: test_rs_https_get pid=11 code=2 cpu=174ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=39ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
16:50:57 [serial 0] [22.105 test-runner pid=11] https_get: refused not-valid-for-name
16:50:57 [serial 0] [22.107 test-runner] ===TEST_END test_rs_https_get exit=2===
16:50:57 [serial 0] [22.186 cpu0 kernel] spawn: /system/bin/test_rs_https_get pid=12 unresolved=0 (layout=7ms relocs=0ms deps=0ms tls=8ms total=16ms)
16:50:57 [serial 0] [22.169 test-runner] ===TEST_START test_rs_https_get===
16:50:57 [serial 0] [22.464 cpu0 kernel] exit: test_rs_https_get pid=12 code=2 cpu=220ms peak=18MB allocs=11 frees=0 syscalls=70 syscall_wall=72ms 0=8 1=7 6=5 9=1 10=11 14=2 24=2 50=1 51=1 63=9 72=1 73=1 75=1 76=1 91=1 99=1 102=7 103=1 105=4 106=5
16:50:57 [serial 0] [22.463 test-runner pid=12] https_get: refused unknown-issuer
16:50:58 [serial 0] [22.466 test-runner] ===TEST_END test_rs_https_get exit=2===
16:50:58   PASS  https_fetch  (23s)
16:50:58   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:50:58 host: fastest boot 20495 ms against the reference 1424 ms — liveness ceilings paid at 8.00x
16:50:58 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:50:58 test result: ok. 1 passed, 1 total (40.5s; workers: 18s building, 23s testing)

The red before it, at 216f33b35, same command, EXIT=1, beside this tree's own --ci host and other worktrees' work: Boot timed out waiting for ===READY===; the console carried: nothing at all after 64 s. Load:

18:40  up 10 days,  6:25, 6 users, load averages: 89.36 87.83 82.56
18:42  up 10 days,  6:26, 6 users, load averages: 98.94 91.36 84.48

Its 16550 file, od -c, the same 58 bytes issues/a-netcase-boot-under-host-load-said-nothing-past-the-firmwares-screen-clears.md records:

0000000  033   [   2   J 033   [   0   1   ;   0   1   H 033   [   =   3
0000020    h 033   [   2   J 033   [   0   1   ;   0   1   H 033   [   2
0000040    J 033   [   0   1   ;   0   1   H 033   [   =   3   h 033   [
0000060    2   J 033   [   0   1   ;   0   1   H                        
0000072
fetch.log
    Blocking waiting for file lock on build directory
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 11.71s
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:41:04 running 1 tests, 12 wide

16:41:04   RUN   https_fetch
16:41:04   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.37s
16:41:12   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (7s)
16:41:12   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.21s
16:41:19   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (8s)
16:41:19   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 1.46s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.68s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.68s
16:41:29 root: adding 'bin/diskserver' (753632 bytes)
16:41:29 root: adding 'bin/fileserver' (1464064 bytes)
16:41:29 root: adding 'bin/logkeeper' (910704 bytes)
16:41:29 root: adding 'bin/netstack' (1057984 bytes)
16:41:29 root: adding 'bin/supervisor' (1299480 bytes)
16:41:29 root: adding 'bin/test-runner' (700136 bytes)
16:41:29 root: adding 'bin/test_rs_https_get' (3516128 bytes)
16:41:29 root: adding 'bin/test_rs_ring_kat' (1116552 bytes)
16:41:29 root: adding 'etc/os-release' (287 bytes)
16:41:29 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
16:41:29 root: adding 'etc/ssl/cert.pem' (181603 bytes)
16:41:29 root: adding 'etc/ssl/harness-cert.pem' (182210 bytes)
16:41:29 root: adding 'etc/system.manifest' (518 bytes)
16:41:29   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for https_fetch  (10s)
16:41:29 [qemu 0] Launching QEMU...

thread '<unnamed>' (227915509) panicked at tests/common/qemu.rs:2440:13:
[qemu] Boot timed out waiting for ===READY===; the console carried:
nothing at all
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
16:42:33 FAIL https_fetch: [qemu] Boot timed out waiting for ===READY===; the console carried:
nothing at all
16:42:33   FAIL  https_fetch  (64s)
16:42:33   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

16:42:33 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:42:33 failures:
16:42:33     https_fetch: [qemu] Boot timed out waiting for ===READY===; the console carried:

16:42:33 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (88.5s; workers: 25s building, 64s testing)
16:42:33 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-18437-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95 https_fetch --nocapture` (exit status: 1)

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

cargo run -- --ci host at e3b11331e, EXIT=0, [ci] Host: 78 step(s), all green; the licence step: the licences of what ships: 6 exception(s) stand, and nothing else is refused. Load and the disk before and after:

18:55  up 10 days,  6:39, 6 users, load averages: 45.32 61.12 74.08
19:01  up 10 days,  6:46, 6 users, load averages: 54.59 55.69 66.50
Filesystem      Size    Used   Avail Capacity iused ifree %iused  Mounted on
/dev/disk3s5   926Gi   761Gi   139Gi    85%     11M  1.5G    1%   /System/Volumes/Data

The log is 471,672 bytes, over a comment's size: below is every line that carries [ci] (grep '\[ci\]'), an extract of it, the whole kept in the job's logs. The run before it, at 216f33b35, was red on three steps, each No space left on device (os error 28) while the development machine's disk was full (2.2 GiB free); it is void, and so is nothing else of this round (grep -c 'No space left' is 0 in every log posted). The first, at 2f7b0eada, was red on the licence step alone: git ls-files ':(glob)/system/etc/ssl/cert.pem', a NOTICE heading naming a path on ROOT, fixed in 216f33b35.

host3.log, the [ci] lines
16:55:43 === [ci] the build system
16:56:02 [ci] the build system: cargo test --lib
16:56:02 === [ci] the harness's own checks
16:56:05 [ci] the harness's own checks: cargo test --test toyos-checks
16:56:05 === [ci] the workspace's host members
17:00:29 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update
17:00:29 === [ci] the kernel's library
17:00:30 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check
17:00:30 === [ci] the licences of what ships
17:00:37 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused
17:00:37 === [ci] clippy and the bare targets
17:00:37 [ci] clippy and the bare targets: installed
17:00:37 === [ci] clippy, warnings denied
17:00:50 [ci] clippy, warnings denied: clean
17:00:50 === [ci] kernel-loom without loom
17:00:50 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor
17:00:50 === [ci] control `wake-fence-off`
17:00:51 [ci] control `wake-fence-off`: 1 verdict(s) reached
17:00:51 === [ci] control `lock-acquire-off`
17:00:51 [ci] control `lock-acquire-off`: 1 verdict(s) reached
17:00:51 === [ci] control `owed-fence-off`
17:00:52 [ci] control `owed-fence-off`: 1 verdict(s) reached
17:00:52 === [ci] control `seqlock-writer-fence-off`
17:00:52 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached
17:00:52 === [ci] control `serial-try-lock-then-some`
17:00:52 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached
17:00:52 === [ci] control `reap-raise-relaxed`
17:00:53 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached
17:00:53 === [ci] control `shootdown-serve-relaxed`
17:00:54 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached
17:00:54 === [ci] control `shootdown-served-relaxed`
17:00:54 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached
17:00:54 === [ci] control `roster-commit-relaxed`
17:00:55 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached
17:00:55 === [ci] control `smp-ready-split`
17:00:55 [ci] control `smp-ready-split`: 1 verdict(s) reached
17:00:55 === [ci] control `log-commit-release-off`
17:00:56 [ci] control `log-commit-release-off`: 2 verdict(s) reached
17:00:56 === [ci] control `shard-publish-relaxed`
17:00:56 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached
17:00:56 === [ci] control `log-ring-publish-relaxed`
17:00:57 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached
17:00:57 === [ci] control `log-ring-tail-relaxed`
17:00:57 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached
17:00:57 === [ci] control `log-ring-loads-swapped`
17:00:58 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached
17:00:58 === [ci] control `post-is-an-answer`
17:00:58 [ci] control `post-is-an-answer`: 3 verdict(s) reached
17:00:58 === [ci] control `poll-fire-load-store`
17:00:59 [ci] control `poll-fire-load-store`: 2 verdict(s) reached
17:00:59 === [ci] control `sleeplock-acquire-off`
17:00:59 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached
17:00:59 === [ci] control `device-irq-lossy`
17:00:59 [ci] control `device-irq-lossy`: 1 verdict(s) reached
17:00:59 === [ci] control `dump-report-relaxed`
17:00:59 [ci] control `dump-report-relaxed`: 1 verdict(s) reached
17:00:59 === [ci] control `no-preempt-guard`
17:01:00 [ci] control `no-preempt-guard`: 1 verdict(s) reached
17:01:00 === [ci] control `doorbell-kick-relaxed`
17:01:01 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached
17:01:01 === [ci] control `push-fence-relaxed`
17:01:01 [ci] control `push-fence-relaxed`: 1 verdict(s) reached
17:01:01 === [ci] control `commit-ignores-notify`
17:01:02 [ci] control `commit-ignores-notify`: 2 verdict(s) reached
17:01:02 === [ci] control `notify-flag-load-only`
17:01:10 [ci] control `notify-flag-load-only`: 1 verdict(s) reached
17:01:10 === [ci] control `gate-fence-off`
17:01:10 [ci] control `gate-fence-off`: 1 verdict(s) reached
17:01:10 === [ci] control `poll-fire-load-store`
17:01:11 [ci] control `poll-fire-load-store`: 3 verdict(s) reached
17:01:11 === [ci] control `fault-posted-before-it-is-set`
17:01:11 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached
17:01:11 === [ci] control `victim-retires-mid-probe`
17:01:11 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached
17:01:11 === [ci] control `counting-allocator`
17:01:12 [ci] control `counting-allocator`: 2 verdict(s) reached
17:01:12 === [ci] control `mutate-spawn-skips-the-insert-recheck`
17:01:12 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached
17:01:12 === [ci] control `mutate-claim-teardown-always-wins`
17:01:13 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached
17:01:13 === [ci] control `mutate-kill-waits-for-its-victims`
17:01:13 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached
17:01:13 === [ci] control `mutate-first-out-tears-down`
17:01:13 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached
17:01:13 === [ci] control `mutate-join-collects-in-a-teardown`
17:01:14 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached
17:01:14 === [ci] control `mutate-last-out-leaves-before-its-teardown`
17:01:14 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached
17:01:14 === [ci] control `mutate-place-skips-the-insert-recheck`
17:01:14 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached
17:01:14 === [ci] control `mutate-refused-spawn-keeps-the-count`
17:01:15 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached
17:01:15 === [ci] control `mutate-landed-child-retires-nothing`
17:01:15 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached
17:01:15 === [ci] control `mutate-publish-before-the-children`
17:01:16 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached
17:01:16 === [ci] control `mutate-walk-in-one-hold`
17:01:16 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached
17:01:16 === [ci] control `mutate-spawner-handle-after-the-landing`
17:01:17 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached
17:01:17 === [ci] control `mutate-spawner-handle-before-the-childs-own`
17:01:17 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached
17:01:17 === [ci] control `placement-ignores-staleness`
17:01:17 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached
17:01:17 === [ci] control `mutate-session-end-forgets`
17:01:25 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached
17:01:25 === [ci] control `mutate-abort-keeps-inflight`
17:01:25 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached
17:01:25 === [ci] control `mutate-no-reissue-after-loss`
17:01:26 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached
17:01:26 === [ci] control `publish-relaxed`
17:01:26 [ci] control `publish-relaxed`: 1 verdict(s) reached
17:01:26 === [ci] control `no-clamp`
17:01:27 [ci] control `no-clamp`: 1 verdict(s) reached
17:01:27 === [ci] control `end-keeps-inflight`
17:01:27 [ci] control `end-keeps-inflight`: 1 verdict(s) reached
17:01:27 === [ci] userland/acpiserver
17:01:27 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml
17:01:27 === [ci] userland/acpiserver/aml
17:01:28 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml
17:01:28 === [ci] userland/calc
17:01:29 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml
17:01:29 === [ci] userland/compositor/desktop
17:01:29 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml
17:01:29 === [ci] userland/diskserver
17:01:30 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml
17:01:30 === [ci] userland/fileserver
17:01:31 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml
17:01:31 === [ci] userland/logkeeper
17:01:31 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml
17:01:31 === [ci] userland/netstack
17:01:32 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml
17:01:32 === [ci] userland/netstack/mdns
17:01:32 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml
17:01:32 === [ci] userland/netstack/node
17:01:33 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml
17:01:33 === [ci] userland/pkg
17:01:34 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml
17:01:34 === [ci] userland/soundserver
17:01:34 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml
17:01:34 === [ci] userland/soundserver/mixer
17:01:38 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml
17:01:38 === [ci] userland/sshserver
17:01:41 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml
17:01:41 === [ci] userland/symbolize
17:01:41 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml
17:01:41 === [ci] the apps for linux
17:01:46 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:01:46 === [ci] the apps for macos
17:01:52 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:01:52 === [ci] the apps for windows
17:01:55 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:01:55 === [ci] the toyos SDK
17:01:56 [ci] the toyos SDK: cargo test -p toyos
17:01:56 === [ci] nothing left in $TMPDIR or /tmp
17:01:56 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
17:01:56 [ci] Host: 78 step(s), all green

cargo run -- --build-only at e3b11331e, EXIT=0, whole. ROOT carries etc/ssl/cert.pem (181,603 bytes, the size the hand-written encoder wrote) and etc/ssl/CDLA-Permissive-2.0.txt (2,371 bytes).

buildonly.log
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.85s
     Running `target/debug/toyos-build --build-only`
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.34s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.23s
   Compiling typenum v1.20.1
   Compiling subtle v2.6.1
   Compiling zeroize v1.9.0
   Compiling cmov v0.5.3
   Compiling rand_core v0.10.0
   Compiling const-oid v0.10.2
   Compiling getrandom v0.4.2 (https://github.com/ToyOSOrg/getrandom?branch=toyos-0.4#f0286c8b)
   Compiling getrandom v0.2.17 (https://github.com/ToyOSOrg/getrandom?branch=toyos-0.2-sdk-0.12#2092d1cc)
   Compiling base64ct v1.8.3
   Compiling const-oid v0.9.6
   Compiling cpubits v0.1.0
   Compiling cpufeatures v0.3.0
   Compiling pin-project-lite v0.2.17
   Compiling num-integer v0.1.46
   Compiling smallvec v1.15.1
   Compiling memchr v2.8.0
   Compiling base16ct v1.0.0
   Compiling rand_core v0.6.4
   Compiling rustcrypto-ff v0.14.0-rc.1
   Compiling zerocopy v0.8.47
   Compiling byteorder v1.5.0
   Compiling opaque-debug v0.3.1
   Compiling bytes v1.12.1
   Compiling ctutils v0.4.2
   Compiling rustcrypto-group v0.14.0-rc.1
   Compiling libm v0.2.16
   Compiling tracing-core v0.1.36
   Compiling serde_core v1.0.228
   Compiling kurbo v0.13.0
   Compiling futures-sink v0.3.32
   Compiling raw-window-handle v0.6.2 (https://github.com/ToyOSOrg/raw-window-handle?branch=toyos-0.6.2#2a5d102b)
   Compiling pem-rfc7468 v1.0.0
   Compiling pem-rfc7468 v0.7.0
   Compiling futures-core v0.3.32
   Compiling serde v1.0.228
   Compiling futures-channel v0.3.32
   Compiling der v0.8.0
   Compiling curve25519-dalek v5.0.0-pre.6
   Compiling winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
   Compiling slab v0.4.12
   Compiling tracing v0.1.44
   Compiling smol_str v0.2.2
   Compiling dpi v0.1.1 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
   Compiling futures-task v0.3.32
   Compiling roxmltree v0.21.1
   Compiling cursor-icon v1.2.0
   Compiling spin v0.9.8
   Compiling futures-io v0.3.32
   Compiling lazy_static v1.5.0
   Compiling num-bigint-dig v0.8.6
   Compiling futures-util v0.3.32
   Compiling softbuffer v0.4.8 (https://github.com/ToyOSOrg/softbuffer?branch=toyos-0.4.8#b36854df)
   Compiling transpose v0.2.3
   Compiling password-hash v0.5.0
   Compiling primal-check v0.3.4
   Compiling num-iter v0.1.45
   Compiling chacha20 v0.10.0
   Compiling socket2 v0.6.3 (https://github.com/ToyOSOrg/socket2?branch=toyos#1d902509)
   Compiling hybrid-array v0.4.8
   Compiling generic-array v0.14.7
   Compiling mio v1.2.0 (https://github.com/ToyOSOrg/mio?branch=toyos#d1edcaad)
   Compiling keccak v0.2.0
   Compiling svgtypes v0.16.1
   Compiling fiat-crypto v0.3.0
   Compiling thiserror v2.0.18
   Compiling tokio v1.51.1 (https://github.com/ToyOSOrg/tokio?branch=toyos#902fb974)
   Compiling spki v0.8.0-rc.4
   Compiling crypto-common v0.1.7
   Compiling block-buffer v0.10.4
   Compiling block-padding v0.3.3
   Compiling digest v0.10.7
   Compiling universal-hash v0.5.1
   Compiling inout v0.1.4
   Compiling polyval v0.6.2
   Compiling cipher v0.4.4
   Compiling ghash v0.5.1
   Compiling sha2 v0.10.9
   Compiling hmac v0.12.1
   Compiling aead v0.5.2
   Compiling pbkdf2 v0.12.2
   Compiling blake2 v0.10.6
   Compiling curve25519-dalek v4.1.3
   Compiling aes v0.8.4
   Compiling crypto-common v0.2.1
   Compiling block-buffer v0.12.0
   Compiling block-padding v0.4.2
   Compiling crypto-bigint v0.7.3
   Compiling inout v0.2.2
   Compiling sec1 v0.8.1
   Compiling ssh-encoding v0.2.0
   Compiling ctr v0.9.2
   Compiling blowfish v0.9.1
   Compiling aes-gcm v0.10.3
   Compiling cbc v0.1.2
   Compiling chacha20 v0.9.1
   Compiling poly1305 v0.8.0
   Compiling pkcs1 v0.8.0-rc.4
   Compiling usvg v0.47.0
   Compiling bcrypt-pbkdf v0.10.0
   Compiling ed25519-dalek v2.2.0
   Compiling argon2 v0.5.3
   Compiling ssh-cipher v0.2.0
   Compiling digest v0.11.1
   Compiling cipher v0.5.1
   Compiling hmac v0.13.0-rc.5
   Compiling universal-hash v0.6.1
   Compiling pbkdf2 v0.13.0-rc.9
   Compiling aes v0.9.0-rc.4
   Compiling salsa20 v0.11.0
   Compiling polyval v0.7.1
   Compiling ctr v0.10.0-rc.4
   Compiling sha2 v0.11.0-rc.5
   Compiling aead v0.6.0-rc.10
   Compiling ghash v0.6.0
   Compiling cbc v0.2.0-rc.4
   Compiling signature v3.0.0-rc.10
   Compiling hkdf v0.13.0-rc.5
   Compiling rfc6979 v0.5.0-rc.5
   Compiling futures-executor v0.3.32
   Compiling sha3 v0.11.0
   Compiling sha1 v0.11.0-rc.5
   Compiling kem v0.3.0
   Compiling module-lattice v0.2.1
   Compiling aes-gcm v0.11.0-rc.3
   Compiling rand v0.10.0
   Compiling rustfft v6.4.1
   Compiling hash32 v0.3.1
   Compiling filepicker-api v0.1.0 (<dev>/toyos-tls/userland/filepicker-api)
   Compiling hex v0.4.3
   Compiling heapless v0.8.0
   Compiling ml-kem v0.3.0-rc.2
   Compiling calc v0.1.0 (<dev>/toyos-tls/userland/calc)
   Compiling generic-array v1.3.5
   Compiling scrypt v0.12.0-rc.10
   Compiling futures v0.3.32
   Compiling pkcs5 v0.8.0-rc.13
   Compiling ppv-lite86 v0.2.21
   Compiling internal-russh-num-bigint v0.5.0
   Compiling resvg v0.47.0
   Compiling toyos-update v0.1.0 (<dev>/toyos-tls/toyos-update)
   Compiling russh-cryptovec v0.59.0 (https://github.com/ToyOSOrg/russh?branch=toyos#389804d3)
   Compiling rand_chacha v0.3.1
   Compiling toyos-swap v0.1.0 (<dev>/toyos-tls/toyos-swap)
   Compiling sha1 v0.10.6
   Compiling pkcs8 v0.11.0-rc.11
   Compiling rand v0.8.5
   Compiling russh-util v0.52.0 (https://github.com/ToyOSOrg/russh?branch=toyos#389804d3)
   Compiling sprite v0.1.0 (<dev>/toyos-tls/userland/sprite)
   Compiling data-encoding v2.10.0
   Compiling ed25519 v3.0.0-rc.4
   Compiling hex-literal v1.1.0
   Compiling md5 v0.7.0
   Compiling smoltcp v0.12.0
   Compiling ed25519-dalek v3.0.0-pre.6
   Compiling snake v0.1.0 (<dev>/toyos-tls/userland/snake)
   Compiling doom v0.1.0 (<dev>/toyos-tls/userland/doom)
   Compiling elliptic-curve v0.14.0-rc.29
   Compiling primefield v0.14.0-rc.8
   Compiling crypto-primes v0.7.0
   Compiling ecdsa v0.17.0-rc.16
   Compiling primeorder v0.14.0-rc.8
   Compiling pkg v0.1.0 (<dev>/toyos-tls/userland/pkg)
   Compiling inspect v0.1.0 (<dev>/toyos-tls/userland/inspect)
   Compiling toyos-trace v0.1.0 (<dev>/toyos-tls/toyos-trace)
   Compiling rustysynth v1.3.6
   Compiling p521 v0.14.0-rc.8
   Compiling p256 v0.14.0-rc.8
   Compiling rsa v0.10.0-rc.17
   Compiling netstack v0.0.0 (<dev>/toyos-tls/userland/netstack)
   Compiling supervisor v0.1.0 (<dev>/toyos-tls/userland/supervisor)
   Compiling trace v0.1.0 (<dev>/toyos-tls/userland/trace)
   Compiling terminal v0.1.0 (<dev>/toyos-tls/userland/terminal)
   Compiling p384 v0.14.0-rc.8
   Compiling update v0.1.0 (<dev>/toyos-tls/userland/update)
   Compiling realfft v3.5.0
   Compiling rubato v0.16.2
   Compiling swap v0.1.0 (<dev>/toyos-tls/userland/swap)
   Compiling filepicker v0.1.0 (<dev>/toyos-tls/userland/filepicker)
   Compiling editor v0.1.0 (<dev>/toyos-tls/userland/editor)
   Compiling compositor v0.1.0 (<dev>/toyos-tls/userland/compositor)
   Compiling files v0.1.0 (<dev>/toyos-tls/userland/files)
   Compiling paint v0.1.0 (<dev>/toyos-tls/userland/paint)
   Compiling host v0.1.0 (<dev>/toyos-tls/userland/host)
   Compiling proctest v0.1.0 (<dev>/toyos-tls/userland/proctest)
   Compiling soundserver v0.0.0 (<dev>/toyos-tls/userland/soundserver)
   Compiling internal-russh-forked-ssh-key v0.6.18+upstream-0.6.7
   Compiling russh v0.60.0 (https://github.com/ToyOSOrg/russh?branch=toyos#389804d3)
   Compiling sshserver v0.0.0 (<dev>/toyos-tls/userland/sshserver)
    Finished `toyos` profile [optimized + debuginfo] target(s) in 1m 16s
warning: the following packages contain code that will be rejected by a future version of Rust: winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
17:05:32 root: adding 'bin/acpiserver' (1003560 bytes)
17:05:32 root: adding 'bin/calc' (1285752 bytes)
17:05:32 root: adding 'bin/compositor' (2581312 bytes)
17:05:32 root: adding 'bin/diskserver' (753632 bytes)
17:05:32 root: adding 'bin/doom' (1830056 bytes)
17:05:32 root: adding 'bin/editor' (787888 bytes)
17:05:32 root: adding 'bin/filepicker' (741120 bytes)
17:05:32 root: adding 'bin/files' (2393256 bytes)
17:05:32 root: adding 'bin/fileserver' (1464064 bytes)
17:05:32 root: adding 'bin/host' (565208 bytes)
17:05:32 root: adding 'bin/inspect' (722000 bytes)
17:05:32 root: adding 'bin/logkeeper' (910704 bytes)
17:05:32 root: adding 'bin/netstack' (1057992 bytes)
17:05:32 root: adding 'bin/paint' (733256 bytes)
17:05:32 root: adding 'bin/pkg' (810104 bytes)
17:05:32 root: adding 'bin/proctest' (686032 bytes)
17:05:32 root: adding 'bin/shell' (791592 bytes)
17:05:32 root: adding 'bin/snake' (997400 bytes)
17:05:32 root: adding 'bin/soundserver' (916632 bytes)
17:05:32 root: adding 'bin/sshserver' (4798632 bytes)
17:05:32 root: adding 'bin/supervisor' (1299408 bytes)
17:05:32 root: adding 'bin/swap' (708312 bytes)
17:05:32 root: adding 'bin/symbolize' (692816 bytes)
17:05:32 root: adding 'bin/terminal' (810072 bytes)
17:05:32 root: adding 'bin/toybox' (1105840 bytes)
17:05:32 root: adding 'bin/trace' (563056 bytes)
17:05:32 root: adding 'bin/update' (795448 bytes)
17:05:32 root: adding 'etc/os-release' (287 bytes)
17:05:32 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
17:05:32 root: adding 'etc/ssl/cert.pem' (181603 bytes)
17:05:32 root: adding 'etc/system.manifest' (2912 bytes)
17:05:32 root: adding 'share/doom1.wad' (4196020 bytes)
17:05:32 root: adding 'share/fonts/JetBrainsMono-Regular-8x16.font' (66404 bytes)
17:05:32 root: adding 'share/fonts/ofl.txt' (4216 bytes)
17:05:32 root: adding 'share/fonts/opensans-bold.ttf' (147264 bytes)
17:05:32 root: adding 'share/fonts/opensans-bolditalic.ttf' (153308 bytes)
17:05:32 root: adding 'share/fonts/opensans-italic.ttf' (153256 bytes)
17:05:32 root: adding 'share/fonts/opensans-regular.ttf' (147528 bytes)
17:05:32 root: adding 'share/hello.rs' (55 bytes)
17:05:32 root: adding 'share/icons/arrow-down-right-bold.svg' (211 bytes)
17:05:32 root: adding 'share/icons/crosshair-simple-bold.svg' (809 bytes)
17:05:32 root: adding 'share/icons/cursor-bold.svg' (560 bytes)
17:05:32 root: adding 'share/icons/file-bold.svg' (293 bytes)
17:05:32 root: adding 'share/icons/folder-bold.svg' (303 bytes)
17:05:32 root: adding 'share/icons/minus-bold.svg' (253 bytes)
17:05:32 root: adding 'share/icons/square-bold.svg' (264 bytes)
17:05:32 root: adding 'share/icons/x-bold.svg' (392 bytes)
17:05:32 root: adding 'share/soundfont.sf2' (15546764 bytes)
17:05:32 root: adding 'share/wallpaper.rgb' (6220808 bytes)
17:05:32 root: symlink 'bin/cat' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/cp' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/echo' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/free' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/grep' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/hexdump' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/locale' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/ls' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/mkdir' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/mv' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/net' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/ps' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/pwd' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/reboot' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/rm' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/screen' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/shutdown' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/spin' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/stats' -> '/system/bin/toybox'
17:05:32 root: symlink 'bin/tone' -> '/system/bin/toybox'
17:05:32 Signed with this checkout's throwaway key SHA256:x1XWYKTedh30nJSbvStJneER7AuHN0sD3QcvtCJirXE at version 1791565450
17:05:32 Build finished.
Boot image: <dev>/toyos-tls/target/bootable.img

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

The whole guest suite at e3b11331e, cargo test --no-fail-fast (so toyos-checks runs whatever the QEMU suite says), EXIT=0: toyos-build 42 passed, 42 total; toyos-checks 39 passed. uptime before and after:

19:02  up 10 days,  6:46, 6 users, load averages: 55.66 55.89 66.50
19:03  up 10 days,  6:48, 6 users, load averages: 86.43 65.59 68.97

Part 2 of 2, from Running tests/toyos.rs to the end (part 1, the build system's own unit tests that --no-fail-fast also runs, is the next comment):

guest2.log, lines 501–end
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

17:02:19 running 42 tests, 12 wide

17:02:19   RUN   https_fetch
17:02:19   RUN   acpi_mediated_access
17:02:19   RUN   machine_shutdown
17:02:19   RUN   acpi_lock_given_back_on_one_cpu
17:02:19   RUN   iommu_virtio_platform
17:02:19   RUN   acpi_power_button
17:02:19   RUN   nested_nmi_is_loud
17:02:19   RUN   acpi_supply_outlives_holder
17:02:19   RUN   machine_shutdown_short_stop
17:02:19   RUN   bar_map_again
17:02:19   RUN   netstack_socket_churn
17:02:19   RUN   libc_sockets
17:02:19   BUILD x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop
17:02:19   BUILD x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access
17:02:19   BUILD x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again
17:02:19   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
17:02:19   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
17:02:19   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button
17:02:19   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud
17:02:19   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown
17:02:19   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:24   BUILT x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop  (5s)
17:02:24 [build-lock] artifact staging acquired after 171.3ms
17:02:24   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for machine_shutdown_short_stop
17:02:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:25 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 1s so far
17:02:25   BUILD x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets
17:02:25 [build-lock] artifact staging acquired after 1.0s
17:02:25 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:25   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (6s)
17:02:25   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
17:02:25 [build-lock] artifact staging acquired after 1.1s
17:02:26   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (6s)
17:02:26   BUILD x86_64 kernel, ROOT of tests/netcase, for netstack_socket_churn
17:02:26 [build-lock] artifact staging acquired after 1.2s
17:02:26   BUILT x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access  (7s)
17:02:26 [build-lock] artifact staging acquired after 1.3s
17:02:26   BUILD x86_64 ROOT of tests/acpicase, for acpi_mediated_access
17:02:26   BUILD x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu
17:02:26   BUILD x86_64 kernel, ROOT of tests/acpicase, for acpi_supply_outlives_holder
17:02:26 [build-lock] artifact staging acquired after 1.5s
17:02:26 [build-lock] artifact staging acquired after 1.5s
17:02:26 [build-lock] artifact staging acquired after 1.4s
17:02:26 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:26 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:26 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:26   BUILT x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again  (7s)
17:02:26   BUILD x86_64 ROOT of tests/testcases, for bar_map_again
17:02:26 [build-lock] artifact staging acquired after 738.3ms
17:02:27 [build-lock] artifact staging acquired after 632.2ms
17:02:27   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud  (7s)
17:02:27 [build-lock] artifact staging acquired after 995.7ms
17:02:27   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button  (8s)
17:02:27 [build-lock] artifact staging acquired after 1.3s
17:02:27   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown  (8s)
17:02:28   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform  (8s)
17:02:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:29   BUILT x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets  (5s)
17:02:29   BUILD x86_64 ROOT of tests/netcase, for libc_sockets
17:02:29 [build-lock] artifact staging acquired after 85.9ms
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 1s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 1s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 1s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 1s so far
17:02:30 [build-lock] artifact staging acquired after 405.9ms
17:02:30   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for machine_shutdown_short_stop  (5s)
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:30   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (5s)
17:02:30 [build-lock] artifact staging acquired after 717.3ms
17:02:30 [build-lock] artifact staging acquired after 699.8ms
17:02:30 [build-lock] artifact staging acquired after 699.8ms
17:02:30 [build-lock] artifact staging acquired after 623.0ms
17:02:30 [build-lock] artifact staging acquired after 268.8ms
17:02:30   BUILD x86_64 ROOT of tests/netcase, for https_fetch
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:31 [build-lock] artifact staging acquired after 280.7ms
17:02:31   BUILT x86_64 kernel, ROOT of tests/netcase, for netstack_socket_churn  (5s)
17:02:31 [build-lock] artifact staging acquired after 735.7ms
17:02:31   BUILT x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu  (5s)
17:02:32 [build-lock] artifact staging acquired after 1.2s
17:02:32   BUILT x86_64 kernel, ROOT of tests/acpicase, for acpi_supply_outlives_holder  (6s)
17:02:32 [build-lock] artifact staging acquired after 1.7s
17:02:32   BUILT x86_64 ROOT of tests/acpicase, for acpi_mediated_access  (6s)
17:02:33   BUILT x86_64 ROOT of tests/testcases, for bar_map_again  (7s)
17:02:34   BUILT x86_64 ROOT of tests/netcase, for libc_sockets  (5s)
17:02:35   BUILT x86_64 ROOT of tests/netcase, for https_fetch  (5s)
17:02:36   [nmi] nested: [nmi] NESTED NMI on cpu 0: a second NMI entered while IST2 was still in use.
17:02:36   PASS  nested_nmi_is_loud  (10s)
17:02:36   RUN   console_image_boots
17:02:36   BUILD x86_64 ROOT of console, for console_image_boots
17:02:43 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
17:02:43 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
17:02:43   BUILT x86_64 ROOT of console, for console_image_boots  (6s)
17:02:43   [power] 1 table(s) loaded; [15.829 acpiserver] acpiserver: \_S5 handed to the kernel: SLP_TYPa=0 beside [15.829 cpu0 kernel] power: S5 is PM1a 0x604 with SLP_TYPa=0, as the acpi claim's holder supplied it
17:02:43   [power] the press: acpiserver: the power button was pressed, on SCI 1 of this boot; asking the supervisor to power off
17:02:43   PASS  acpi_power_button  (16s)
17:02:43   RUN   nvme_disk_keeps_log_and_home
17:02:44   [power] shutdown: QEMU stopped the guest for guest-shutdown
17:02:44   PASS  machine_shutdown  (16s)
17:02:44   RUN   screen_panic_muted
17:02:44   [iommu] headless: 3 virtio function(s) behind a unit = true, the audio function 00:04.0 among them
17:02:47   [power] a short stop, then the power-off: stop: 17 of 19 userland thread(s) stopped across 1 cpu(s) in 0 ms of a 0 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; this reset lands wherever the other 2 are
17:02:47   PASS  machine_shutdown_short_stop  (18s)
17:02:47   RUN   screen_fatal_behind_a_painter
17:02:48   [acpi] [11.722 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
17:02:48   [acpi] [16.307 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
17:02:48   [acpi] [16.309 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
17:02:48   [acpi] [16.310 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
17:02:48   [acpi] [16.312 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
17:02:48   [acpi] [16.313 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
17:02:48   [acpi] [16.360 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
17:02:48   [acpi] [16.488 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
17:02:48   [acpi] [16.489 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
17:02:48   [acpi] [16.489 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
17:02:48   [acpi] [16.489 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
17:02:48   [acpi] [16.488 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [0, 0, 0]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
17:02:48   [acpi] [16.488 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
17:02:48   [acpi] [16.436 cpu0 kernel] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 21017ns, its SMI count unread before the write and unread after; the first of that byte
17:02:48   [acpi] [16.436 cpu0 kernel] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
17:02:48   [acpi] [16.436 cpu0 kernel] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
17:02:48   [acpi] [16.436 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
17:02:48   [acpi] [16.436 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
17:02:48   [acpi] [15.985 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
17:02:48   [acpi] [16.544 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
17:02:48   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
17:02:48   PASS  acpi_lock_given_back_on_one_cpu  (23s)
17:02:48   RUN   screen_fatal_halt_composited
17:02:48   BUILD x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited
17:02:49   PASS  netstack_socket_churn  (18s)
17:02:49   RUN   screen_loader_clears
17:02:49   [acpi] [17.491 cpu0 kernel] Shutting down.
17:02:49   [acpi] QEMU stopped the guest for guest-shutdown, with no claim held, on the sleep type a holder that is gone supplied
17:02:49   [acpi] [13.068 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
17:02:49   [acpi] [13.082 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
17:02:49   [acpi] [16.796 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
17:02:49   [acpi] [16.797 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
17:02:49   PASS  acpi_supply_outlives_holder  (24s)
17:02:49   RUN   virt_early_panic
17:02:49   [acpi] [16.797 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
17:02:49   [acpi] [16.799 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
17:02:49   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic
17:02:49   [acpi] [16.799 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
17:02:49   [acpi] [16.800 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
17:02:49   [acpi] [16.847 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
17:02:49   [acpi] [16.849 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
17:02:49   [acpi] [16.850 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
17:02:49   [acpi] [16.850 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
17:02:49   [acpi] [16.847 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [1, 1, 1]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
17:02:49   [acpi] [16.847 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
17:02:49   [acpi] [16.822 cpu1 kernel tid=2] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 27017ns, its SMI count unread before the write and unread after; the first of that byte
17:02:49   [acpi] [16.833 cpu1 kernel tid=4] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 3002ns, its SMI count unread before the write and unread after; the first of that byte
17:02:49   [acpi] [16.845 cpu1 kernel tid=6] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 3002ns, its SMI count unread before the write and unread after; the first of that byte
17:02:49   [acpi] [16.845 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
17:02:49   [acpi] [16.846 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
17:02:49   [acpi] [16.720 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
17:02:49   [acpi] [16.970 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
17:02:49   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
17:02:49   PASS  acpi_mediated_access  (17s)
17:02:49   RUN   virt_early_fault
17:02:49   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault
17:02:50   [claims] bar_map_again: two answers held at once map apart, and the later outlives the earlier
17:02:50   [claims] bar_map_again: answered with a handle that maps
17:02:50   [claims] bar_map_again: answered after the refusal with a handle that maps
17:02:50   PASS  bar_map_again  (17s)
17:02:50   RUN   virt_el2_drop
17:02:50   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop
17:02:54 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
17:02:54 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
17:02:54   BUILT x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited  (6s)
17:02:54   PASS  libc_sockets  (25s)
17:02:54   RUN   virt_user_mode
17:02:54   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
17:02:54 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:54 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:55 [build-lock] artifact staging acquired after 770.0ms
17:02:55 [build-lock] artifact staging acquired after 711.5ms
17:02:55 [build-lock] waiting for the artifact lock (artifact staging) — held, but the holder left no readable note
17:02:55 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:02:56   PASS  screen_panic_muted  (12s)
17:02:56   RUN   virt_timer_preempts
17:02:56   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
17:02:56 [build-lock] artifact staging acquired after 768.8ms
17:02:56   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic  (7s)
17:02:56   PASS  https_fetch  (21s)
17:02:56   RUN   virt_irq_storm
17:02:57 [build-lock] artifact staging acquired after 1.3s
17:02:57   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault  (7s)
17:02:57   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop  (7s)
17:02:58   PASS  virt_early_panic  (2s)
17:02:58   RUN   virt_timer_floor
17:02:58   PASS  virt_early_fault  (2s)
17:02:58   RUN   virt_fp_isolation
17:02:58   PASS  console_image_boots  (16s)
17:02:58   RUN   virt_first_entry
17:03:00   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (5s)
17:03:01   [virt] [ 2.872 cpu0 kernel] timer-floor: PASS span=240 floor=240 ticks: the comparator past the counter it was set from
17:03:01   PASS  virt_timer_floor  (3s)
17:03:01   RUN   virt_unmap_touch
17:03:01   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (5s)
17:03:01   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
17:03:01   PASS  virt_el2_drop  (4s)
17:03:01   RUN   virt_debug_refused
17:03:01   [iommu] headless-no-iommu: 2 virtio function(s) behind a unit = false, the audio function 00:04.0 among them; the NIC's claim refused for want of a unit
17:03:03   PASS  virt_user_mode  (4s)
17:03:03   RUN   virt_readonly_copyout
17:03:06   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (5s)
17:03:06   BUILD aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts
17:03:06   PASS  screen_fatal_behind_a_painter  (19s)
17:03:06   RUN   virt_ring0_timer_in_syscall
17:03:08   PASS  screen_loader_clears  (19s)
17:03:08   RUN   virt_mask_windows
17:03:11   [panic] the fatal report is on the panel and sealed in the black box (14222 bytes)
17:03:11   PASS  screen_fatal_halt_composited  (17s)
17:03:11   RUN   virt_smp
17:03:11   BUILT aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts  (5s)
17:03:11   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows
17:03:11   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
17:03:11   BUILD aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch
17:03:11   BUILD aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout
17:03:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:18   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows  (7s)
17:03:18   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows
17:03:18 [build-lock] artifact staging acquired after 117.0ms
17:03:18 [build-lock] artifact staging acquired after 63.2ms
17:03:18 [build-lock] artifact staging acquired after 46.5ms
17:03:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:18 [build-lock] artifact staging acquired after 393.8ms
17:03:18   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (7s)
17:03:19 [build-lock] artifact staging acquired after 801.2ms
17:03:19   BUILT aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch  (7s)
17:03:19   BUILT aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout  (8s)
17:03:20   [iommu] declined: [16.494 cpu0 kernel] virtio-sound: NOT INITIALISED — PCI 00:04.0 refused the feature set 0x100000000 the driver accepted, leaving DEVICE_STATUS=0x3 without FEATURES_OK
17:03:20   PASS  iommu_virtio_platform  (52s)
17:03:20   RUN   virt_el1_smp
17:03:22   [virt] [ 3.066 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 3728053 and 8003795
17:03:22   PASS  virt_timer_preempts  (3s)
17:03:22   RUN   virt_failed_ap_leaves_no_hole
17:03:22   [virt] [25.853 cpu0 kernel] irq-storm: PASS sgis=3726802/3726802 ticks=1000: the timer fired through the flood, and every SGI sent was taken
17:03:22   PASS  virt_irq_storm  (26s)
17:03:22   RUN   virt_fatal_halts_the_others_first
17:03:22   BUILD aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first
17:03:23   [virt] [ 3.699 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:23   PASS  virt_unmap_touch  (15s)
17:03:23   RUN   virt_reboot
17:03:23   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot
17:03:23   [virt] [ 3.799 test-runner pid=19] a syscall writes only where its caller could store
17:03:23   PASS  virt_readonly_copyout  (12s)
17:03:23   RUN   virt_off_names_the_cpus_left_on
17:03:24   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows  (6s)
17:03:24   BUILD aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows
17:03:24   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
17:03:24   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_smp
17:03:24   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on
17:03:24   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp
17:03:28   [virt] [ 3.751 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
17:03:28   PASS  virt_first_entry  (30s)
17:03:28   RUN   virt_reboot_refused_without_psci
17:03:28   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci
17:03:28   [virt] [ 3.763 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
17:03:28   PASS  virt_fp_isolation  (30s)
17:03:28   RUN   virt_jobs_at_el2
17:03:29   [virt] [ 4.333 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
17:03:29   PASS  virt_ring0_timer_in_syscall  (23s)
17:03:29   RUN   virt_random_differs
17:03:29   [virt] [ 4.194 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
17:03:29   PASS  virt_debug_refused  (28s)
17:03:29   RUN   virt_no_seed_refused
17:03:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:29   BUILT aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first  (7s)
17:03:29   BUILD aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first
17:03:29 [build-lock] artifact staging acquired after 8.1ms
17:03:30   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot  (7s)
17:03:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:31 [build-lock] artifact staging acquired after 638.8ms
17:03:31 [build-lock] artifact staging acquired after 585.0ms
17:03:31 [build-lock] artifact staging acquired after 563.0ms
17:03:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:31 [build-lock] artifact staging acquired after 1.1s
17:03:31 [build-lock] artifact staging acquired after 575.4ms
17:03:31   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (8s)
17:03:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 40461 (artifact staging), 0s so far
17:03:32 [build-lock] artifact staging acquired after 1.1s
17:03:32   BUILT aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows  (8s)
17:03:32 [build-lock] artifact staging acquired after 1.5s
17:03:32   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp  (9s)
17:03:33 [build-lock] artifact staging acquired after 1.5s
17:03:33   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on  (9s)
17:03:33   [virt] [ 4.340 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: 59fceba5ced296516652bff8aa65c3a0369271b17219a7a664ad00b6bed23fc0
17:03:33   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_smp  (10s)
17:03:34   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci  (6s)
17:03:35   BUILT aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first  (6s)
17:03:36   [virt] [ 7.632 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 4333997 and 11260126
17:03:36   PASS  virt_no_seed_refused  (8s)
17:03:36   [virt] [ 8.023 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
17:03:37   [virt] [ 8.048 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
17:03:37   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
17:03:37   PASS  virt_reboot  (7s)
17:03:38   [virt] reboot: this machine has no reset this kernel performs — refused, and the job ended exit 1
17:03:38   PASS  virt_reboot_refused_without_psci  (4s)
17:03:38   [virt] [ 4.334 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: c5892999821195301806705f2c68e82e329074554668ae8475c0d313136a7a1e
17:03:38   [virt] two boots keyed from the loader's seed printed two draws
17:03:38   PASS  virt_random_differs  (9s)
17:03:38   [virt] [ 9.769 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:38   [virt] [ 9.838 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
17:03:39   [virt] [ 9.971 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
17:03:39   [virt] [10.910 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: ca6bc8c939bb334620ae99b8c7f00fe4049a13fd25320c17da19fd53d3ab13ea
17:03:40   [virt] [11.235 test-runner pid=19] a syscall writes only where its caller could store
17:03:40   PASS  virt_jobs_at_el2  (12s)
17:03:40   [disk] after the reboot /home/kept-40461-1791565363940299000/release is the 10 lines of /system/etc/os-release, and /log/2026-10-09-170301.log: test-runner said kept-40461-1791565363940299000
17:03:40   PASS  nvme_disk_keeps_log_and_home  (56s)
17:03:40   [virt] [ 7.708 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:40   [virt] [ 8.332 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:40   [virt] a non-last AP never started and the dense machine ran its job
17:03:40   PASS  virt_failed_ap_leaves_no_hole  (11s)
17:03:40   [virt] [ 7.644 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:40   [virt] 8 CPUs entered at EL1, started through HVC, and scheduling
17:03:41   [windows] cpu0 irqs_off_ns=449000 preempt_off_ns=89290000
17:03:41   [windows] cpu1 irqs_off_ns=51672000 preempt_off_ns=13695000
17:03:41   [windows] cpu2 irqs_off_ns=4924000 preempt_off_ns=14631000
17:03:41   [windows] cpu3 irqs_off_ns=83500000 preempt_off_ns=139426000
17:03:41   [windows] cpu4 irqs_off_ns=2888000 preempt_off_ns=93668000
17:03:41   [windows] cpu5 irqs_off_ns=4981000 preempt_off_ns=29208000
17:03:41   [windows] cpu6 irqs_off_ns=53983000 preempt_off_ns=55437000
17:03:41   [windows] cpu7 irqs_off_ns=13109000 preempt_off_ns=11574000
17:03:41   PASS  virt_mask_windows  (12s)
17:03:41   [virt] [ 8.205 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
17:03:41   [virt] [ 8.433 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
17:03:41   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
17:03:41   PASS  virt_el1_smp  (13s)
17:03:41   [virt] [ 7.820 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:41   [virt] 8 CPUs entered at EL2, started through SMC, and scheduling
17:03:42   [virt] [ 8.317 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
17:03:42   [virt] [ 8.199 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
17:03:42   [virt] [ 8.308 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
17:03:42   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
17:03:42   PASS  virt_smp  (21s)
17:03:43   [panic] the fatal path on cpu2 left every other CPU halted with interrupts masked
17:03:43   PASS  virt_fatal_halts_the_others_first  (8s)
17:03:47   [virt] [6, 7] left on and named; the rest CPU_OFF, then 0x0 SYSTEM_OFF; 1438 PSCI call(s) traced
17:03:47   PASS  virt_off_names_the_cpus_left_on  (15s)
17:03:47   --- 45 guests, 28 of them not the shipping kernel, 3 kernel build(s): ["", "boot-actuators,test-actuators", "mask-windows"]

17:03:47 host: fastest boot 910 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
17:03:47 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
17:03:47 test result: ok. 42 passed, 42 total (88.0s; workers: 275s building, 698s testing)
     Running tests/checks.rs (target/debug/deps/toyos_checks-fe5c0c1152eeec0b)

running 39 tests
test checks::a_run_selects_by_filter ... ok
test checks::metal_boots_last_job_is_behind_every_other ... ok
test checks::a_name_registered_twice_is_refused ... ok
test checks::a_shared_chunk_stages_every_binary_its_members_name ... ok
test checks::a_stall_stays_red ... ok
test checks::metal_domains_end_below_the_host_bridges ... ok
test checks::metal_claim_spends_one_remapping_entry ... ok
test checks::irq_census_verdict ... ok
test checks::control_regs_verdict ... ok
test checks::mask_windows_verdict ... ok
test checks::metal_audio_judges ... ok
test checks::metal_list_from_parse_reaches_run_without_the_machine ... ok
test checks::metal_rows_run_before_members_under_a_bound_the_members_widen ... ok
test checks::metal_judges_read_the_page_for_what_only_the_page_carries ... ok
test checks::metal_usb_judge ... ok
test checks::metal_words_take_rows_members_and_whole_boots ... ok
test checks::nested_nmi_verdict ... ok
test checks::nvme_image_is_held_by_one_guest ... ok
test checks::psci_power_off_judge ... ok
test checks::run_exit_status ... ok
test checks::screen_decoder ... ok
test checks::metal_cleared_page_owes_no_panel ... ok
test checks::suspend_invalidates_a_verdict ... ok
test checks::serial_vocabulary ... ok
test checks::metal_reading_past_its_record_fails_and_moves_nothing ... ok
test checks::the_c_corpus_stages_the_expectation_the_host_compares ... ok
test checks::metal_failing_shared_member_fails_itself_alone ... ok
test checks::metal_stop_owes_its_record_and_leaves_no_operation_open ... ok
test checks::the_foreign_record_judge_demands_the_stop_sealed_done ... ok
test checks::the_xecp_judge_reads_the_t14s_handoff ... ok
test checks::metal_name_measured_twice_is_refused ... ok
test checks::metal_name_two_owners_measured_is_refused ... ok
test checks::metal_boot_that_lost_parts_of_its_log_judges_no_row ... ok
test checks::metal_number_fails_with_its_owner_alone ... ok
test checks::metal_run_under_another_bios_fails_and_records_nothing ... ok
test checks::metal_loader_kernel_and_program_count_from_one_zero ... ok
test checks::metal_bound_fires_within_one_period_of_itself ... ok
test checks::suspend_detector ... ok
test checks::suite_split ... ok

test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

   Doc-tests toyos_build

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

The whole guest suite at e3b11331e, part 1 of 2: guest2.log lines 1–500.

guest2.log, lines 1–500
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 1.27s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 356 tests
test arch::tests::a_guest_of_another_architecture_is_emulated ... ok
test bootlog::record_time_tests::a_records_elapsed_field_is_read_past_whatever_tag_precedes_it ... ok
test bootlog::record_time_tests::the_last_record_is_the_last_line_that_carries_a_time ... ok
test bootlog::tests::a_long_binarys_record_is_the_prefix_the_kernel_keeps ... ok
test arch::tests::every_target_names_its_own_architecture ... ok
test bootlog::tests::a_power_off_is_the_supervisors_stop_naming_a_shutdown ... ok
test bootlog::tests::a_boot_record_without_the_supervisors_stop_is_not_a_pass ... ok
test bootlog::tests::the_boot_record_is_the_kernels_own_line ... ok
test bootlog::tests::a_boot_is_handed_back_by_its_done_and_its_last_word ... ok
test bootlog::record_time_tests::the_panel_census_is_read_off_either_channel ... ok
test bootlog::tests::only_a_declaration_of_the_whole_value_counts ... ok
test bootlog::tests::a_part_whose_rotation_the_log_does_not_hold_is_a_hole ... ok
test bootlog::tests::a_programs_line_is_never_the_kernels ... ok
test bootlog::tests::a_boot_that_lost_parts_of_its_own_log_is_told_from_one_that_is_whole ... ok
test bootlog::tests::the_loaders_file_is_told_from_logkeepers_however_a_driver_spelled_it ... ok
test arch::tests::every_name_parses_back_to_its_arch_and_nothing_else_does ... ok
test build::tests::a_bin_entry_no_name_reaches_is_refused ... ok
test build::tests::a_boot_that_asks_for_no_feature_gets_the_shipping_kernel ... ok
test build::tests::a_kernel_of_any_other_feature_set_is_not_judged ... ok
test build::tests::a_hold_in_front_of_the_save_is_an_entry_the_judge_refuses_to_read ... ok
test build::tests::a_hold_is_refused_in_a_shipping_entry_however_its_labels_are_spelled ... ok
test build::tests::a_clean_entry_is_the_shipping_kernels ... ok
test build::tests::a_kernel_that_does_not_name_exactly_one_entry_is_refused ... ok
test bootlog::tests::the_loader_writes_the_lines_the_host_reads ... ok
test build::tests::a_valued_parameter_is_one_the_kernel_claims_by_prefix ... ok
test bootlog::tests::the_kernel_writes_the_records_the_host_reads ... ok
test build::tests::an_artifact_build_is_not_part_of_a_test_execution_price ... ok
test build::tests::debug_mode_declares_only_its_debug_kernel ... ok
test build::tests::a_case_plan_carries_the_config_and_the_parameters ... ok
test build::tests::every_boot_config_runs_logkeeper ... ok
test build::tests::a_provides_name_is_never_also_a_serves_name ... ok
test build::tests::an_installed_app_receives_only_names_the_supervisor_holds ... ok
test build::tests::every_config_renders_its_manifest ... ok
test build::tests::a_row_starts_only_what_a_launch_can_start ... ok
test build::tests::every_modes_crates_and_the_supervisor_ship ... ok
test build::tests::every_receives_names_a_provider ... ok
test build::tests::every_declared_capability_is_one_the_abi_has ... ok
test build::tests::every_device_class_has_at_most_one_claimant ... ok
test assets::tests::the_console_font_covers_the_swiss_german_altgr_layer ... ok
test build::tests::no_actuator_is_also_a_cargo_feature ... ok
test build::tests::no_diag_program_claims_the_screen ... ok
test build::tests::every_model_control_is_run ... ok
test build::tests::no_shipped_boot_config_starts_sshserver ... ok
test build::tests::only_their_holders_may_hold_the_swap_port_and_the_slots ... ok
test build::tests::every_started_program_is_declared ... ok
test build::tests::the_check_does_not_reach_a_spawner_that_never_spawns ... ok
test build::tests::the_actuator_umbrella_is_a_leaf ... ok
test build::tests::the_log_right_doc_names_exactly_the_manifests_holders ... ok
test build::tests::the_kernel_declares_only_the_builds_that_earned_one ... ok
test build::tests::params_read_the_kernels_own_list ... ok
test build::tests::the_pre_flash_gate_clears_a_valued_parameter_and_refuses_an_actuator ... ok
test build::tests::every_shipped_boot_config_is_covered ... ok
test build::tests::a_boot_config_that_is_not_a_case_is_refused ... ok
test build::tests::a_stamp_that_cannot_be_written_panics ... ok
test buildlock::tests::child_role ... ignored, the competing process for the tests below; never runs on its own
test build::tests::moved_libraries_take_what_was_built_for_them_and_a_moved_compiler_all ... ok

running 1 test

running 1 test
17:02:06 [build-lock] waiting for the build lock (exclusive, queued exclusive phase) — held by other builds in this tree

running 1 test

running 1 test

running 1 test

running 1 test

running 1 test

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.01s

test assets::tests::the_system_fonts_ship_with_their_licence ... ok
17:02:06 [build-lock] waiting for the build lock (shared, child) — an exclusive phase is queued ahead of it
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.01s

test buildlock::tests::shared_admits_shared ... ok
test ci::tests::a_carried_jobs_step ... ignored, the driver of the test above; never runs on its own
test buildlock::tests::killed_holder_releases_the_lock ... ok
test ci::tests::a_hung_step ... ignored, the step of the driver above; never runs on its own
test ci::tests::a_hung_steps_child ... ignored, what the step above spawns; never runs on its own
test ci::tests::a_hung_steps_driver ... ignored, the driver of the tests around it; never runs on its own

running 1 test
test buildlock::tests::exclusive_excludes_every_other_acquirer ... ok
test ci::tests::a_control_is_judged_by_its_verdict_and_not_its_exit_alone ... ok
test ci::tests::a_job_is_named_and_takes_nothing_after_it ... ok
test ci::tests::a_steps_cargo ... ignored, the driver of the test above; never runs on its own

running 1 test

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.02s

17:02:06 [build-lock] waiting for the sysroot lock (using sysroot 6ab9f1eb8f7d3388) — held by pid 1224 (building sysroot 6ab9f1eb8f7d3388), 0s so far
test buildlock::tests::a_released_holder_is_gone ... ok
test ci::tests::an_app_is_judged_for_every_host_its_fails_does_not_name ... ok
17:02:06 [build-lock] waiting for the build lock (exclusive, clean the crate target) — held by other builds in this tree
test assets::tests::only_doom_opens_doom_s_assets ... ok
test ci::tests::an_interrupted_drivers_judge ... ignored, the judge of the test above; never runs on its own
test ci::tests::left_behind_refuses_a_tmpdir_that_never_saw_the_lock ... ok
test ci::tests::only_mains_tip_publishes ... ok
test ci::tests::the_declared_version_is_a_version ... ok
test ci::tests::the_host_job_names_what_its_tests_left_behind ... ok
test ci::tests::an_interrupt_of_the_driver_ends_the_group_its_step_runs_in ... ok
test ci::tests::the_required_check_is_a_job_on_every_pull_request ... ok
test ci::tests::the_summary_keeps_the_count_and_the_verdicts ... ok
test ci::tests::the_version_parser_takes_what_qemu_prints_and_refuses_the_rest ... ok
test ci::tests::workflows_run_against_main_on_hosted_runners ... ok
test ci::tests::the_job_names_a_short_root_a_step_left_when_it_died ... ok
test assets::tests::a_system_font_ships_as_it_is_and_the_console_font_as_its_raster ... ok
test assets::tests::root_carries_what_the_repository_declares ... ok
test assets::tests::an_owned_asset_ships_only_where_its_reader_does ... ok
17:02:07 [build-lock] acquired (exclusive, queued exclusive phase) after 307.7ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.31s

17:02:07 [build-lock] acquired (shared, child) after 299.4ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.30s

test buildlock::tests::a_queued_exclusive_phase_goes_first ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered outtest buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.32s

; finished in 0.30s

test cicache::tests::a_reader_whose_clock_is_not_after_the_entry_is_refused ... ok

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.01s

test buildlock::tests::a_key_being_built_is_waited_for_and_another_key_is_not ... ok
test cicache::tests::every_spelling_of_code_run_at_build_time_is_found ... ok
test cicache::tests::only_a_driver_built_in_its_own_target_carries_the_cache ... ok
17:02:07 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 311ms so far — the holder left no readable note
test cicache::tests::a_seal_refuses_what_its_save_would_store_above_the_bound ... ok
test cicache::tests::a_seal_dates_every_target_and_refuses_a_written_source ... ok
test clippy::tests::the_adopted_set_expands_into_the_shapes_that_name_it ... ok
test clang::tests::a_toolchain_carries_the_clang_of_its_llvm_or_is_refused ... ok
test ci::tests::a_step_of_a_job_that_carries_the_cache_builds_in_its_own_target ... ok
test cicache::tests::targets_restored_without_a_manifest_are_refused ... ok
test build::tests::a_tree_records_its_commit_its_commit_time_and_whether_it_is_dirty ... ok
test buildlock::tests::a_lasting_wait_keeps_saying_so ... ok
test compiler::tests::child_role ... ignored, the competing process for the test above; never runs on its own
test compiler::tests::every_compiler_is_built_lean_against_the_host_s_llvm ... ok
17:02:07 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 615ms so far — the holder left no readable note
17:02:07 [build-lock] acquired (exclusive, clean the crate target) after 691.5ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.72s

test buildlock::tests::a_clean_cannot_land_inside_a_build ... ok
test ci::tests::a_steps_cargo_finds_fresh_what_the_jobs_cargo_built ... ok
test firmware::tests::a_descriptor_that_does_not_parse_is_refused_by_name ... ok
test firmware::tests::a_glob_matches_a_trailing_star_as_a_prefix_and_refuses_anything_else ... ok
test firmware::tests::a_read_only_templates_copy_is_still_writable ... ok
test firmware::tests::an_earlier_directory_hides_a_later_ones_name_and_a_missing_one_holds_nothing ... ok
test firmware::tests::nothing_fitting_is_refused_naming_what_was_read ... ok
test firmware::tests::the_first_non_secure_uefi_flash_descriptor_for_the_machine_wins ... ok
test firmware::tests::the_machine_is_the_versioned_type_its_alias_resolves_to ... ok
test firmware::tests::the_users_and_the_systems_directories_come_before_qemus_own ... ok
test flags::tests::a_declared_flags_value_is_never_read_as_a_flag ... ok
test flags::tests::a_flag_left_without_its_value_is_refused ... ok
test flags::tests::a_flag_that_reads_one_value_is_refused_when_it_is_written_twice ... ok
test flags::tests::a_repeatable_flag_keeps_every_value_it_was_given ... ok
test flags::tests::an_argument_the_declaration_does_not_expect_is_refused_by_name ... ok
test flags::tests::an_inline_value_is_refused_exactly_where_it_would_be_dropped ... ok
test flags::tests::help_is_the_whole_declared_list ... ok
test hostws::tests::every_crate_in_the_tree_joined_the_workspace_or_was_excluded_by_name ... ok
test hostws::tests::every_member_and_every_exclusion_still_names_a_directory ... ok
test build::tests::the_kernel_resolves_no_libc_for_either_target ... ok
test hostws::tests::the_dead_path_scan_names_the_member_and_ignores_an_excluded_crate ... ok
test hostws::tests::the_dead_path_scan_reads_code_and_not_the_comment_beside_it ... ok
test hostws::tests::the_gate_refuses_a_crate_that_joined_neither_list ... ok
test hostws::tests::the_root_package_is_the_only_default_member ... ok
test hostws::tests::the_walk_reaches_the_tree_and_descends_into_it ... ok
test identity::tests::a_file_that_is_not_rust_is_its_bytes ... ok
test identity::tests::a_literal_is_never_read_as_a_comment ... ok
test identity::tests::a_signature_or_a_value_is_a_change ... ok
test cicache::tests::an_entry_built_on_another_runner_is_deleted ... ok
test identity::tests::the_doc_fix_that_cost_a_version_and_a_sysroot_is_neither ... ok
test hostws::tests::nothing_that_runs_names_a_target_directory_a_member_does_not_have ... ok
test identity::tests::every_doc_comment_in_the_sysroot_crates_is_invisible ... ok
test image::tests::a_second_build_at_the_boundary_does_not_run_out ... ok
test image::tests::a_damaged_image_is_refused_by_the_reader_that_caught_it ... ok
test image::tests::every_declared_path_resolves_inside_the_root_partition ... ok
test image::tests::one_ordering_of_one_set_is_one_image ... ok
test image::tests::an_image_s_marked_slot_is_signed_over_exactly_what_it_carries ... ok
test image::tests::the_esp_and_a_slot_carry_what_the_bootloader_looks_for ... ok
test image::tests::the_root_partition_reads_back_as_the_files_the_build_put_in_it ... ok
test image::tests::an_install_makes_its_disk_and_refuses_one_that_exists ... ok
test kernelconsole::tests::a_console_that_ends_mid_line_shows_its_last_line ... ok
test image::tests::the_volumes_this_build_writes_break_no_format_rule ... ok
test kernelconsole::tests::a_port_the_firmware_left_alone_passes_whole ... ok
test image::tests::root_carries_less_than_an_alignment_unit_of_free_blocks ... ok
test kernelconsole::tests::a_terminal_is_shown_the_firmware_as_it_came_and_the_kernel_in_colour ... ok
test kernelconsole::tests::nothing_before_the_kernel_passes ... ok
test kernelkeys::tests::every_declared_row_names_the_minter_of_its_keys ... ok
test kernelconsole::tests::the_fused_line_is_the_kernels_first_record_wherever_the_chunks_fall ... ok
test kernelkeys::tests::the_scan_reads_a_nested_generic_to_its_balanced_close ... ok
test kernelkeys::tests::the_scan_walks_past_four_measured_forms ... ok

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.01s

test keystore::tests::a_product_used_again_is_kept ... ok
test keystore::tests::a_stopped_retire_leaves_nothing_at_its_name ... ok
test keystore::tests::a_sweep_leaves_hidden_names_and_refuses_names_no_key_owns ... ok

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.02s

test keystore::tests::a_sweep_removes_what_nobody_used_for_the_keep_time_and_nobody_uses ... ok
test keystore::tests::only_what_key_of_gives_is_a_key ... ok
test libc::tests::the_c_sysroot_names_the_empty_libraries ... ok
test licence::tests::a_cfg_edge_is_walked_and_excepted_only_while_every_edge_in_is_under_it ... ok
test licence::tests::a_committed_file_is_judged_by_its_row_when_it_ships ... ok
test licence::tests::a_disallowed_licence_is_refused_by_name ... ok
test licence::tests::a_font_licence_does_not_reach_a_row_that_is_no_font ... ok
test licence::tests::a_git_dependency_is_judged_like_any_other ... ok
test licence::tests::a_graph_is_walked_over_normal_edges_from_the_shipped_root ... ok
test licence::tests::a_malformed_expression_is_refused_not_guessed ... ok
test licence::tests::a_notice_section_is_judged_when_what_no_row_names_ships ... ok
test kernelkeys::tests::every_hashed_kernel_container_is_declared_with_a_kernel_minted_key ... ok
test licence::tests::a_notice_section_that_disagrees_with_a_row_is_refused ... ok
test licence::tests::a_notice_section_without_one_spdx_line_or_without_files_is_refused ... ok
test licence::tests::a_root_the_metadata_does_not_hold_is_refused ... ok
test licence::tests::an_and_passes_only_when_every_part_does ... ok
test licence::tests::an_embed_is_what_a_build_script_or_an_include_names ... ok
test licence::tests::an_exception_matches_by_name_and_licence_and_a_stale_one_reds ... ok
test licence::tests::an_or_passes_when_any_branch_does ... ok
test licence::tests::every_pending_exception_cites_an_issue_that_exists ... ok
test licence::tests::metadata_is_given_the_features_the_build_gives ... ok
test licence::tests::mpl_passes_and_is_named ... ok
test licence::tests::no_guest_target_satisfies_an_only_under_cfg ... ok
test licence::tests::only_a_workspace_member_is_a_documents_own ... ok
test licence::tests::the_trust_roots_pass_only_with_their_crates_licence_text ... ok
test llvm::tests::a_build_directory_keeps_no_llvm_of_its_own ... ok
test cicache::tests::a_file_cargo_was_never_told_about_rebuilds_its_package ... ok
test compiler::tests::a_compiler_is_keyed_by_its_whole_build ... ok
test compiler::tests::a_compiler_whose_sources_moved_while_it_was_built_is_not_stored ... ok
test compiler::tests::an_uncommitted_llvm_edit_is_refused ... ok
test compiler::tests::a_compiler_s_build_directory_keeps_no_llvm_of_its_own ... ok
test llvm::tests::a_staged_llvm_gitlink_is_refused ... ok
test compiler::tests::a_build_directory_another_llvm_filled_starts_from_nothing ... ok
test cicache::tests::an_entry_serves_exactly_the_sources_it_was_built_from ... ok
test llvm::tests::a_placed_llvm_is_read_only ... ok
test llvm::tests::child_role ... ignored, the competing process for the tests below; never runs on its own
test llvm::tests::keyed_and_built ... ignored, the process the environment test runs; never runs on its own
test kernelconsole::tests::a_relay_waits_out_a_pty_that_would_block ... ok

running 1 test
test llvm::tests::an_llvm_is_stamped_with_what_its_fork_s_commit_names ... ok
test llvm::tests::the_key_names_the_host_s_tools ... ok
test llvm::tests::the_llvm_config_turns_every_host_library_off ... ok

running 1 test
17:02:11 Building LLVM edb8c0a49e4a1de4 in <tmp> nobody on this host has

running 1 test

running 1 test
17:02:11 Building LLVM edb8c0a49e4a1de4 in <tmp> nobody on this host has
17:02:11 Building compiler 7159e1f18b167b33 in <tmp> nobody on this host has
test cicache::tests::code_run_at_build_time_runs_again_on_every_read ... ok
17:02:11 Building LLVM edb8c0a49e4a1de4 in <tmp> nobody on this host has
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.74s

test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.60s

test llvm::tests::a_checkout_behind_its_gitlink_is_built_at_the_gitlink ... ok
test llvm::tests::a_stopped_sweep_leaves_no_llvm_that_passes_for_whole ... ok
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.89s


running 1 test
17:02:12 Building compiler ba8f7ad1ae656e39 in <tmp> nobody on this host has
test llvm::tests::an_llvm_being_made_elsewhere_is_not_made_again ... ok
test metal::tests::a_boot_entry_is_matched_on_the_partition_its_path_names ... ok
test metal::tests::a_boot_entry_the_firmware_did_not_name_cannot_be_filled_in ... ok
test metal::tests::a_command_line_that_names_no_image_flashes_none ... ok
test metal::tests::a_create_that_moved_the_boot_order_is_refused ... ok
test metal::tests::a_failed_boot_and_a_loop_that_could_not_run_are_different_answers ... ok
test metal::tests::a_node_is_a_whole_scsi_or_nvme_disk_and_nothing_else ... ok
test metal::tests::a_pass_that_reported_and_booted_nothing_is_named_as_that ... ok
test metal::tests::a_readback_directory_holds_nothing_the_last_run_left ... ok
test metal::tests::a_refusal_is_read_back_off_the_drivers_stderr ... ok
test metal::tests::a_sudoers_word_escapes_what_sudoers_reads ... ok
test metal::tests::an_account_name_that_would_widen_the_rule_is_refused ... ok
test metal::tests::an_arm_with_no_ruling_never_reaches_the_stick ... ok
test metal::tests::an_image_admits_only_the_table_the_installed_rule_names ... ok
test metal::tests::an_image_armed_to_stop_itself_owes_a_record_and_no_reboot ... ok
test metal::tests::an_image_with_no_bound_on_its_own_boot_is_refused ... ok
test llvm::tests::the_caller_s_environment_reaches_neither_the_build_nor_the_key ... ok
test metal::tests::dd_is_believed_only_where_it_states_a_count ... ok
test metal::tests::either_bounds_record_is_a_wedged_boots_pass ... ok
test metal::tests::every_arm_that_stops_this_machine_is_cleared_and_judged_as_one ... ok
test metal::tests::every_ruling_names_a_parameter_the_kernel_declares ... ok
test metal::tests::installing_the_rule_is_not_also_a_boot ... ok
test metal::tests::one_table_feeds_the_rule_and_the_argv ... ok
test metal::tests::the_arguments_name_the_t14_by_default ... ok
test metal::tests::the_bound_the_gate_demands_is_a_bound_the_gate_clears ... ok
test metal::tests::the_deadlines_lateness_is_counted_from_its_arm ... ok
test metal::tests::the_foreign_record_arm_reaches_its_judge_through_the_hang_it_stages ... ok
test metal::tests::the_host_clock_crosses_in_the_boot_file ... ok
test metal::tests::the_identity_is_the_stick_or_it_is_refused ... ok
test metal::tests::the_lid_policy_is_systemds_effective_one ... ok
test metal::tests::the_loops_verdict_crosses_in_the_readback ... ok
test metal::tests::the_machine_crosses_in_the_boot_file ... ok
test metal::tests::the_outside_judges_read_can_write_nothing ... ok
test metal::tests::the_readback_carries_the_verdict_the_loop_returns ... ok
test metal::tests::the_rule_is_the_command_table_rendered ... ok
test metal::tests::the_ssh_line_carries_the_key_and_nothing_interactive ... ok
test metal::tests::the_wait_outlasts_every_watchdog_a_boot_runs_under ... ok
test metaldevices::tests::a_needle_that_only_appears_in_a_comment_is_not_found ... ok
test metaldevices::tests::the_kernel_writes_the_quiesce_lines_the_host_reads ... ok
test metaldevices::tests::the_shutdowns_own_account_is_read_out_of_the_loaders_file ... ok
test metalimage::tests::a_config_with_no_runner_is_refused_by_name ... ok
test metalimage::tests::every_derived_config_ends_its_own_boot ... ok
test metalimage::tests::nothing_the_config_declared_is_dropped ... ok
test metaltimings::tests::a_failing_owners_reading_is_judged_and_not_recorded ... ok
test metaltimings::tests::a_known_machine_outside_its_record_fails_and_keeps_its_record ... ok
test metaltimings::tests::a_known_machine_within_its_record_passes ... ok
test metaltimings::tests::a_machine_is_three_non_empty_lines ... ok
test metaltimings::tests::a_name_recorded_twice_is_refused ... ok
test metaltimings::tests::a_new_name_on_a_known_machine_is_recorded_and_not_failed ... ok
test metaltimings::tests::a_record_survives_the_file_it_is_written_to ... ok
test metaltimings::tests::a_recorded_name_nothing_measured_is_named ... ok
test metaltimings::tests::an_unknown_machine_is_recorded_and_not_judged ... ok
test metaltimings::tests::another_bios_fails_naming_both_and_records_nothing ... ok
test metaltimings::tests::every_committed_record_loads_from_its_own_path ... ok
test metaltimings::tests::two_machines_sharing_a_file_name_are_refused ... ok
test n2::tests::an_installed_n2_is_not_installed_again ... ok
test release::tests::a_job_is_told_each_layer_s_entry_and_path ... ok
test release::tests::a_job_lays_out_the_one_sysroot_it_restored ... ok
test release::tests::a_job_saves_only_what_it_built ... ok
test release::tests::a_landing_during_the_nightly_puts_nothing_up_and_is_no_failure ... ok
test release::tests::a_layer_that_is_not_whole_is_refused ... ok
test release::tests::a_release_is_made_to_carry_these_bytes_and_no_other ... ok
test release::tests::one_sysroot_packs_to_one_digest_and_unpacks_whole ... ok
test release::tests::only_mains_publisher_publishes ... ok
test release::tests::the_glibc_scan_takes_the_newest_version_and_nothing_else ... ok
test llvm::tests::an_llvm_keeps_what_builds_read_and_nothing_else ... ok
test sdkversion::tests::a_changed_crate_takes_the_minor_after_the_newest_and_an_unchanged_one_keeps_it ... ok
test sdkversion::tests::a_dependent_whose_newest_names_a_stale_dependency_goes_up_again ... ok
test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 0.61s

test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 355 filtered out; finished in 1.61s

test compiler::tests::one_compiler_per_key_whichever_checkout_names_it ... ok
test sdkversion::tests::every_lockfile_resolves_the_published_crates_from_the_tree ... ok
test sdkversion::tests::every_row_is_a_crate_the_tree_holds_in_dependency_order ... ok
test llvm::tests::an_llvm_is_swept_once_nothing_used_it_for_the_keep_time ... ok
test signing::tests::a_checkouts_throwaway_key_is_minted_once_and_read_back ... ok
test signing::tests::a_key_that_is_not_one_is_refused_by_name ... ok
test signing::tests::an_owner_key_reads_back_and_signs_what_the_loader_verifies ... ok
test signing::tests::an_owner_key_wider_than_0600_is_refused ... ok
test soundfont::tests::doom1_wads_music_selects_the_instruments_it_selects ... ok
test soundfont::tests::the_shipped_bank_carries_nothing_doom_does_not_select ... ok
test soundfont::tests::the_shipped_bank_sounds_every_instrument_the_shipped_wad_selects ... ok
test soundfont::tests::the_shipped_bank_still_carries_its_source_licence ... ok
test sourcegate::tests::a_capability_closing_ends_no_log_poll ... ok
test sourcegate::tests::a_value_is_refused_by_its_shape_and_what_resembles_one_is_not ... ok
test sourcegate::tests::bus_mastering_is_armed_at_exactly_the_declared_sites ... ok
test llvm::tests::two_sdk_versions_are_two_keys ... ok
test llvm::tests::an_uncommitted_bootstrap_names_no_llvm ... ok
test sourcegate::tests::every_hand_written_auto_trait_impl_is_declared ... ok
test sourcegate::tests::nmi_does_not_log ... ok
test sourcegate::tests::no_slice_or_exclusive_reference_is_built_over_a_mapped_page ... ok
test llvm::tests::the_key_moves_with_the_llvm_and_only_with_it ... ok
test sourcegate::tests::the_scan_reaches_the_tree_it_claims_to ... ok
test sdkversion::tests::the_published_manifests_resolve_as_the_forks_name_them ... ok
test sdkversion::tests::a_key_moves_with_the_crate_and_its_published_dependencies ... ok
test sysroot::tests::a_std_build_downloads_no_llvm_and_asks_for_no_ninja ... ok
test sysroot::tests::a_std_build_under_the_same_compiler_keeps_no_llvm ... ok
test sourcegate::tests::every_host_scratch_is_the_guard ... ok
test sourcegate::tests::every_committed_binary_file_is_declared ... ok
test sysroot::tests::a_sysroot_is_whole_or_it_is_made_again ... ok
test sysroot::tests::a_sysroot_records_the_witness_it_was_built_from ... ok
test sysroot::tests::a_sysroot_that_cannot_be_made_whole_is_made_once_and_refused ... ok
test sysroot::tests::a_switch_that_cannot_remove_records_nothing_and_the_next_one_removes ... ok
test sysroot::tests::a_compiler_made_again_under_its_key_leaves_all_of_a_crate_stale ... ok
test sysroot::tests::another_compiler_s_std_build_goes_and_the_same_one_s_stays ... ok
test sysroot::tests::the_libraries_placed_are_the_ones_the_stamp_names ... ok
test llvm::tests::the_runtimes_sources_are_the_commit_s ... ok
test release::tests::the_layers_are_the_stores_the_build_makes ... ok
test testargs::tests::a_boot_word_names_a_metal_boot_and_nothing_else ... ok
test testargs::tests::a_deleted_flag_is_refused_rather_than_becoming_the_filter ... ok
test testargs::tests::a_flag_left_without_its_value_is_refused_by_name ... ok
test testargs::tests::a_flag_written_twice_is_refused_by_name ... ok
test testargs::tests::a_flags_value_is_not_the_filter ... ok
test testargs::tests::a_readback_directory_alone_selects_no_tier ... ok
test testargs::tests::a_readback_flag_with_no_directory_never_reaches_the_metal_driver ... ok
test testargs::tests::an_inline_value_on_a_flag_that_has_none_is_refused ... ok
test testargs::tests::an_unknown_flag_is_refused_before_metal_decides_a_mode ... ok
test testargs::tests::every_word_that_is_nobodys_value_is_a_filter ... ok
test testargs::tests::metal_and_list_never_drives ... ok
test testargs::tests::metal_list_beside_a_readback_directory_is_refused ... ok
test testargs::tests::metal_refuses_a_filter_that_is_a_flags_name_or_empty ... ok
test testargs::tests::metal_refuses_the_flags_it_reads_nothing_of_by_name ... ok
test testargs::tests::metal_resolves_to_a_mode_that_reaches_the_machine_only_when_asked ... ok
test testargs::tests::the_documented_command_lines_parse ... ok
test testargs::tests::the_filter_is_the_word_that_is_nobodys_value ... ok
test tether::tests::a_tethered_child_dies_with_its_owner ... ok
test tether::tests::owner ... ignored, the owner `a_tethered_child_dies_with_its_owner` kills; never runs on its own
test tether::tests::parked ... ignored, the tethered child of `owner`; never runs on its own
test toolchain::tests::a_bootstrap_run_leaves_both_lockfiles_as_they_were ... ok
test toolchain::tests::a_bootstrap_run_sees_no_ci_variables ... ok
test toolchain::tests::a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it ... ok
test toolchain::tests::a_fake_bootstrap ... ignored, the bootstrap `a_bootstrap_run_leaves_both_lockfiles_as_they_were` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_reads_ci ... ignored, the bootstrap `a_bootstrap_run_sees_no_ci_variables` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_strips ... ignored, the bootstrap `a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it` runs; never runs on its own
test toolchain::tests::a_link_failure_is_not_a_compile_error ... ok
test toolchain::tests::a_restore_that_cannot_write_leaves_the_file_whole ... ok
test toolchain::tests::a_toolchain_bin_without_cargo_is_one_rustup_narrates ... ok
test toolchain::tests::dep_info_names_the_checkout_std_was_really_built_from ... ok
test toolchain::tests::dep_info_that_cannot_be_read_is_refused ... ok
test llvm::tests::an_llvm_that_is_not_whole_is_made_again ... ok
test toolchain::tests::the_first_real_error_is_the_one_reported ... ok
test toolchain::tests::freestanding_libraries_that_read_the_worktree_are_refused ... ok
test userlandhost::tests::a_host_declaration_is_read_whole_and_refused_by_name ... ok
test userlandhost::tests::a_test_attribute_is_a_word_and_not_a_substring ... ok
test userlandhost::tests::every_program_the_images_ship_declares_what_it_is_to_a_host ... ok
test userlandhost::tests::a_manifest_that_switches_tests_off_is_named ... ok
test userlandhost::tests::the_survey_gates_what_cargo_test_runs_and_names_the_rest ... ok
test userlandhost::tests::what_could_hide_a_test_is_a_condition ... ok
test userlandhost::tests::every_userland_test_is_in_the_gate ... ok
test metal::tests::coming_back_is_ssh_answering_and_not_its_port ... ok
test wallpaper::tests::the_wallpaper_neither_bands_nor_blocks ... ok
test llvm::tests::two_compilers_of_one_llvm_make_it_once ... ok
test compiler::tests::every_source_of_a_compiler_moves_its_key ... ok
test wallpaper::tests::the_committed_wallpaper_is_the_one_this_file_describes ... ok
test sysroot::tests::a_submodule_is_the_commit_its_gitlink_records_checked_out_or_not ... ok
Preparing worktree (detached HEAD 7141dc2)
test sysroot::tests::ensure_shallow_fork_initialises_no_submodule_in_a_linked_worktree ... ok
HEAD is now at 7141dc2 C2
test sysroot::tests::a_comment_is_the_same_sysroot_and_a_signature_is_another ... ok
Preparing worktree (detached HEAD 1b023df)
HEAD is now at 1b023df backtrace, later
Preparing worktree (detached HEAD 82f8199)
HEAD is now at 82f8199 C2
Preparing worktree (detached HEAD 1b023df)
HEAD is now at 1b023df backtrace, later
test llvm::tests::what_the_key_does_not_name_is_never_stored ... ok
test ci::tests::a_step_that_goes_quiet_is_ended_with_what_it_spawned_and_names_its_last_line ... ok
test sysroot::tests::twelve_builds_at_once_make_and_move_one_fork_checkout ... ok
test sourcegate::tests::no_tracked_file_identifies_a_machine_or_its_network ... ok
test sysroot::tests::a_worktree_pinning_another_fork_commit_gets_its_own_checkout ... ok
test sysroot::tests::the_primary_s_fork_checkout_is_moved_to_its_pin ... ok

test result: ok. 341 passed; 0 failed; 15 ignored; 0 measured; 0 filtered out; finished in 12.17s

     Running unittests src/main.rs (target/debug/deps/toyos_build-9224aca26d504154)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/bin/toyos-metal.rs (target/debug/deps/toyos_metal-d5ad3fb014fabb77)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

The first whole guest suite of this round, at 2f7b0eada, cargo test, EXIT=1: 41 passed, 1 failed of 42, the red virt_mask_windows: STALLED: waiting for the boot's last word — it went quiet, its console ending at the kernel's spawn: /system/bin/test_rs_counters_read, the signature issues/a-counters-read-under-host-load-can-go-silent-for-15-s.md records (an AArch64 virtsmpcase boot this branch builds nothing for). toyos-checks did not run after it. Load:

18:17  up 10 days,  6:01, 6 users, load averages: 58.49 60.11 62.63
18:30  up 10 days,  6:15, 6 users, load averages: 84.83 82.55 77.44

From Running tests/toyos.rs to the end; lines 1–506 are the build system's own unit tests and src/main.rs' and toyos-metal's, which cargo test runs first (341 passed; 0 failed; 15 ignored among them), kept in the job's logs.

guest.log, lines 507–end
     Running tests/toyos.rs (target/debug/deps/toyos_build-5f056120d951bf95)

16:19:29 running 42 tests, 12 wide

16:19:29   RUN   iommu_virtio_platform
16:19:29   RUN   libc_sockets
16:19:29   RUN   https_fetch
16:19:29   RUN   acpi_power_button
16:19:29   RUN   netstack_socket_churn
16:19:29   RUN   acpi_mediated_access
16:19:29   RUN   nested_nmi_is_loud
16:19:29   BUILD x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access
16:19:29   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
16:19:29   RUN   machine_shutdown
16:19:29   RUN   acpi_lock_given_back_on_one_cpu
16:19:29   RUN   acpi_supply_outlives_holder
16:19:29   RUN   bar_map_again
16:19:29   RUN   machine_shutdown_short_stop
16:19:29   BUILD x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again
16:19:29   BUILD x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop
16:19:29   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud
16:19:29   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown
16:19:29   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button
16:19:29   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
16:19:29   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform
16:19:37 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — held by other builds in this tree
16:19:37 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:19:37 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:19:37 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:19:38 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:19:38 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:19:38 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:19:38 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:19:39 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:19:39 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 2.1s
16:19:39 external deps changed: cleaning <dev>/toyos-tls/target/aarch64-unknown-toyos
16:19:39 [build-lock] waiting for the build lock (shared, the C sysroot) — held by pid 9326 (clean crate targets against changed external deps), 0s so far
16:19:40 external deps changed: cleaning <dev>/toyos-tls/target/x86_64-unknown-toyos
16:19:42 [build-lock] acquired (shared, a test binary) after 4.4s
16:19:42 [build-lock] acquired (shared, test image) after 4.3s
16:19:42 [build-lock] acquired (shared, test image) after 4.2s
16:19:42 [build-lock] acquired (shared, a test binary) after 3.5s
16:19:42 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — an exclusive phase is queued ahead of it
16:19:42 [build-lock] acquired (shared, a test binary) after 3.5s
16:19:42 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — an exclusive phase is queued ahead of it
16:19:42 [build-lock] acquired (shared, a test binary) after 3.3s
16:19:42 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — an exclusive phase is queued ahead of it
16:19:42 [build-lock] acquired (shared, a test binary) after 3.1s
16:19:42 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — an exclusive phase is queued ahead of it
16:19:42 [build-lock] acquired (shared, test image) after 3.1s
16:19:42 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:19:43 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:19:43 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:19:43 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — an exclusive phase is queued ahead of it
16:19:43 [build-lock] acquired (shared, the C sysroot) after 3.8s
16:19:43   BUILD x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets
16:19:43 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:20:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:20:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:20:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:20:12 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:20:13 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 31s so far
16:20:13 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 31s so far
16:20:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:20:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:20:14 [build-lock] still waiting for the build lock (shared, a test binary), 30s so far — the holder left no readable note
16:20:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 60s so far — the holder left no readable note
16:20:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 60s so far — the holder left no readable note
16:20:42 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 60s so far
16:20:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 60s so far — the holder left no readable note
16:20:43 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 61s so far
16:20:43 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 61s so far
16:20:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 60s so far — the holder left no readable note
16:20:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 60s so far — the holder left no readable note
16:20:44 [build-lock] still waiting for the build lock (shared, a test binary), 60s so far — the holder left no readable note
16:21:10 [build-lock] artifact staging acquired after 88.6s
16:21:10 [build-lock] artifact staging acquired after 87.6s
16:21:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:21:10 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:21:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 90s so far — the holder left no readable note
16:21:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 90s so far — the holder left no readable note
16:21:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 90s so far — the holder left no readable note
16:21:13 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 3s so far
16:21:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 90s so far — the holder left no readable note
16:21:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 90s so far — the holder left no readable note
16:21:14 [build-lock] still waiting for the build lock (shared, a test binary), 90s so far — the holder left no readable note
16:21:40 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:21:40 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:21:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 120s so far — the holder left no readable note
16:21:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 120s so far — the holder left no readable note
16:21:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 120s so far — the holder left no readable note
16:21:43 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 33s so far
16:21:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 120s so far — the holder left no readable note
16:21:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 120s so far — the holder left no readable note
16:21:44 [build-lock] still waiting for the build lock (shared, a test binary), 120s so far — the holder left no readable note
16:22:10 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 60s so far
16:22:10 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 60s so far
16:22:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 150s so far — the holder left no readable note
16:22:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 150s so far — the holder left no readable note
16:22:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 150s so far — the holder left no readable note
16:22:13 [build-lock] still waiting for the artifact lock (artifact staging), 150s so far — held by pid 9326 (artifact staging), 63s so far
16:22:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 150s so far — the holder left no readable note
16:22:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 150s so far — the holder left no readable note
16:22:14 [build-lock] still waiting for the build lock (shared, a test binary), 150s so far — the holder left no readable note
16:22:33 [build-lock] artifact staging acquired after 170.1s
16:22:33 [build-lock] artifact staging acquired after 82.4s
16:22:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:22:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:22:40 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 7s so far
16:22:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 180s so far — the holder left no readable note
16:22:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 180s so far — the holder left no readable note
16:22:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 180s so far — the holder left no readable note
16:22:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 180s so far — the holder left no readable note
16:22:43 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 180s so far — the holder left no readable note
16:22:44 [build-lock] still waiting for the build lock (shared, a test binary), 180s so far — the holder left no readable note
16:23:03 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:23:03 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:23:10 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 37s so far
16:23:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 210s so far — the holder left no readable note
16:23:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 210s so far — the holder left no readable note
16:23:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 210s so far — the holder left no readable note
16:23:12 [build-lock] artifact staging acquired after 121.5s
16:23:12   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button  (223s)
16:23:13 [build-lock] artifact staging acquired after 39.9s
16:23:13   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown  (224s)
16:23:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 210s so far — the holder left no readable note
16:23:13 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 210s so far — the holder left no readable note
16:23:14 [build-lock] still waiting for the build lock (shared, a test binary), 210s so far — the holder left no readable note
16:23:14 [build-lock] artifact staging acquired after 41.0s
16:23:14   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud  (225s)
16:23:26   [nmi] nested: [nmi] NESTED NMI on cpu 0: a second NMI entered while IST2 was still in use.
16:23:26   PASS  nested_nmi_is_loud  (12s)
16:23:26   RUN   console_image_boots
16:23:26   BUILD x86_64 ROOT of console, for console_image_boots
16:23:26 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:23:31   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform  (242s)
16:23:31 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 229.0s
16:23:31 external deps changed: cleaning <dev>/toyos-tls/tests/toyos-rust-tests/target/aarch64-unknown-toyos
16:23:31 external deps changed: cleaning <dev>/toyos-tls/tests/toyos-rust-tests/target/x86_64-unknown-toyos
16:23:31 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:23:31 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 229.3s
16:23:31 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 229.3s
16:23:31 [build-lock] waiting for the build lock (shared, a test binary) — held by pid 9326 (clean crate targets against changed external deps), 0s so far
16:23:31 [build-lock] acquired (shared, a test binary) after 124.5µs
16:23:31 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:23:31   [power] 1 table(s) loaded; [18.580 acpiserver] acpiserver: \_S5 handed to the kernel: SLP_TYPa=0 beside [18.580 cpu0 kernel] power: S5 is PM1a 0x604 with SLP_TYPa=0, as the acpi claim's holder supplied it
16:23:31   [power] the press: acpiserver: the power button was pressed, on SCI 1 of this boot; asking the supervisor to power off
16:23:31   PASS  acpi_power_button  (20s)
16:23:31   RUN   nvme_disk_keeps_log_and_home
16:23:32   [power] shutdown: QEMU stopped the guest for guest-shutdown
16:23:32   PASS  machine_shutdown  (19s)
16:23:32   RUN   screen_panic_muted
16:23:42 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 240s so far — the holder left no readable note
16:23:43   PASS  screen_panic_muted  (11s)
16:23:43   RUN   screen_fatal_behind_a_painter
16:23:44 [build-lock] still waiting for the build lock (shared, a test binary), 240s so far — the holder left no readable note
16:23:49   [iommu] headless: 3 virtio function(s) behind a unit = true, the audio function 00:04.0 among them
16:23:56 [build-lock] still waiting for the build lock (shared, test image), 30s so far — the holder left no readable note
16:24:01 [build-lock] still waiting for the build lock (shared, a test binary), 30s so far — the holder left no readable note
16:24:01 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:24:01 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 30s so far — the holder left no readable note
16:24:04   PASS  screen_fatal_behind_a_painter  (21s)
16:24:04   RUN   screen_fatal_halt_composited
16:24:04   BUILD x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited
16:24:04 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:12 [build-lock] still waiting for the build lock (exclusive, clean crate targets against changed external deps), 270s so far — the holder left no readable note
16:24:14 [build-lock] still waiting for the build lock (shared, a test binary), 270s so far — the holder left no readable note
16:24:16   [iommu] headless-no-iommu: 2 virtio function(s) behind a unit = false, the audio function 00:04.0 among them; the NIC's claim refused for want of a unit
16:24:26   BUILT x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again  (297s)
16:24:26 [build-lock] artifact staging acquired after 54.8s
16:24:26   BUILD x86_64 ROOT of tests/testcases, for bar_map_again
16:24:26 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:26 [build-lock] still waiting for the build lock (shared, test image), 60s so far — the holder left no readable note
16:24:28   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (299s)
16:24:28 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 284.7s
16:24:28 [build-lock] acquired (shared, a test binary) after 284.1s
16:24:28 [build-lock] acquired (shared, test image) after 61.5s
16:24:28   BUILD x86_64 ROOT of tests/netcase, for netstack_socket_churn
16:24:28 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:31 [build-lock] still waiting for the build lock (shared, a test binary), 60s so far — the holder left no readable note
16:24:32   BUILT x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_mediated_access  (303s)
16:24:32   BUILD x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu
16:24:32 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:32   BUILD x86_64 ROOT of tests/acpicase, for acpi_mediated_access
16:24:32 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:32   BUILD x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder
16:24:32 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
16:24:32 [build-lock] waiting for the build lock (shared, a test binary) — an exclusive phase is queued ahead of it
16:24:33 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 291.2s
16:24:33 [build-lock] acquired (shared, a test binary) after 61.9s
16:24:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:33 [build-lock] acquired (shared, test image) after 28.5s
16:24:33 [build-lock] acquired (shared, test image) after 7.1s
16:24:33 [build-lock] acquired (shared, test image) after 5.2s
16:24:33 [build-lock] acquired (shared, test image) after 1.3s
16:24:33 [build-lock] acquired (shared, test image) after 1.3s
16:24:33 [build-lock] acquired (shared, test image) after 1.3s
16:24:33 [build-lock] acquired (shared, a test binary) after 940.8ms
16:24:33 [build-lock] waiting for the build lock (shared, test image) — held by other builds in this tree
16:24:33 [build-lock] acquired (shared, test image) after 74.0ms
16:24:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:24:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:24:35   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (306s)
16:24:35   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
16:24:35 [build-lock] artifact staging acquired after 2.0s
16:24:35   BUILT x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop  (307s)
16:24:35 [build-lock] artifact staging acquired after 1.1s
16:24:35   BUILD x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop
16:24:36   [disk] after the reboot /home/kept-9326-1791563011917370000/release is the 10 lines of /system/etc/os-release, and /log/2026-10-09-162347.log: test-runner said kept-9326-1791563011917370000
16:24:36   PASS  nvme_disk_keeps_log_and_home  (65s)
16:24:36   RUN   screen_loader_clears
16:24:37   BUILT x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets  (293s)
16:24:37 [build-lock] artifact staging acquired after 2.1s
16:24:37   BUILD x86_64 ROOT of tests/netcase, for libc_sockets
16:24:39 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 2s so far
16:24:39 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 2s so far
16:24:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 3s so far
16:24:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 3s so far
16:24:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 3s so far
16:24:40 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 3s so far
16:24:42   [iommu] declined: [23.188 cpu0 kernel] virtio-sound: NOT INITIALISED — PCI 00:04.0 refused the feature set 0x100000000 the driver accepted, leaving DEVICE_STATUS=0x3 without FEATURES_OK
16:24:42   PASS  iommu_virtio_platform  (71s)
16:24:42   RUN   virt_early_panic
16:24:42   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic
16:24:42 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 5s so far
16:24:43 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 6s so far
16:24:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 7s so far
16:24:45 [build-lock] artifact staging acquired after 5.4s
16:24:45 [build-lock] artifact staging acquired after 5.3s
16:24:45 [build-lock] artifact staging acquired after 5.2s
16:24:45 [build-lock] artifact staging acquired after 5.1s
16:24:45 [build-lock] artifact staging acquired after 5.1s
16:24:45 [build-lock] artifact staging acquired after 5.0s
16:24:45 [build-lock] artifact staging acquired after 2.9s
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:45 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
16:24:45 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
16:24:45   BUILT x86_64 ROOT of console, for console_image_boots  (79s)
16:24:46   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (11s)
16:24:46 [build-lock] artifact staging acquired after 3.2s
16:24:46 [build-lock] artifact staging acquired after 2.5s
16:24:46 [build-lock] artifact staging acquired after 1.3s
16:24:46   BUILD x86_64 ROOT of tests/netcase, for https_fetch
16:24:46 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:46 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:47 [build-lock] artifact staging acquired after 2.1s
16:24:47   BUILT x86_64 ROOT of tests/testcases, for bar_map_again  (21s)
16:24:48 [build-lock] artifact staging acquired after 3.0s
16:24:48   BUILT x86_64 ROOT of tests/acpicase, for acpi_mediated_access  (16s)
16:24:48 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:24:49 [build-lock] artifact staging acquired after 3.9s
16:24:49   BUILT x86_64 ROOT of tests/netcase, for netstack_socket_churn  (21s)
16:24:50 [build-lock] artifact staging acquired after 5.1s
16:24:50   BUILT x86_64 ROOT of tests/acpicase, for acpi_supply_outlives_holder  (18s)
16:24:53 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 3s so far
16:25:06   PASS  screen_loader_clears  (30s)
16:25:06   RUN   virt_early_fault
16:25:06   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault
16:25:07   PASS  console_image_boots  (22s)
16:25:07   RUN   virt_el2_drop
16:25:07   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop
16:25:13 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 23s so far
16:25:14 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 24s so far
16:25:15 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 25s so far
16:25:16 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 26s so far
16:25:16 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 26s so far
16:25:17   [claims] bar_map_again: two answers held at once map apart, and the later outlives the earlier
16:25:17   [claims] bar_map_again: answered with a handle that maps
16:25:17   [claims] bar_map_again: answered after the refusal with a handle that maps
16:25:17   PASS  bar_map_again  (30s)
16:25:17   RUN   virt_user_mode
16:25:17   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
16:25:17   [acpi] [23.705 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
16:25:17   [acpi] [23.775 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
16:25:17   [acpi] [29.770 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
16:25:17   [acpi] [29.773 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
16:25:17   [acpi] [29.774 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
16:25:17   [acpi] [29.794 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
16:25:17   [acpi] [29.794 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
16:25:17   [acpi] [29.795 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
16:25:17   [acpi] [30.246 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
16:25:17   [acpi] [30.247 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
16:25:17   [acpi] [30.247 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
16:25:17   [acpi] [30.247 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
16:25:17   [acpi] [30.245 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [1, 1, 1]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
16:25:17   [acpi] [30.246 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
16:25:17   [acpi] [30.005 cpu1 kernel tid=2] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 26969ns, its SMI count unread before the write and unread after; the first of that byte
16:25:17   [acpi] [30.018 cpu1 kernel tid=4] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 4315ns, its SMI count unread before the write and unread after; the first of that byte
16:25:17   [acpi] [30.166 cpu1 kernel tid=5] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 5394ns, its SMI count unread before the write and unread after; the first of that byte
16:25:17   [acpi] [30.205 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1079ns, its SMI count unread before the write and unread after; the first of that byte
16:25:17   [acpi] [30.206 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1079ns, its SMI count unread before the write and unread after; the first of that byte
16:25:17   [acpi] [29.543 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
16:25:17   [acpi] [30.590 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
16:25:17   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
16:25:17   PASS  acpi_mediated_access  (29s)
16:25:17   RUN   virt_timer_preempts
16:25:17   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
16:25:18   PASS  netstack_socket_churn  (29s)
16:25:18   RUN   virt_irq_storm
16:25:18   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm
16:25:18 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 28s so far
16:25:18   [acpi] [27.585 cpu0 kernel] Shutting down.
16:25:18   [acpi] QEMU stopped the guest for guest-shutdown, with no claim held, on the sleep type a holder that is gone supplied
16:25:18   PASS  acpi_supply_outlives_holder  (331s)
16:25:18   RUN   virt_timer_floor
16:25:18   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor
16:25:23 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 33s so far
16:25:23 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 33s so far
16:25:23 [build-lock] artifact staging acquired after 38.3s
16:25:23 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
16:25:23 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
16:25:23   BUILT x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited  (79s)
16:25:23 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:25:24 [build-lock] artifact staging acquired after 37.6s
16:25:24   BUILT x86_64 ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu  (52s)
16:25:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:25:24 [build-lock] artifact staging acquired after 38.3s
16:25:24   BUILT x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop  (49s)
16:25:25 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:25:25 [build-lock] artifact staging acquired after 37.2s
16:25:25   BUILT x86_64 ROOT of tests/netcase, for libc_sockets  (49s)
16:25:43 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 18s so far
16:25:44 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 19s so far
16:25:44   [panic] the fatal report is on the panel and sealed in the black box (14228 bytes)
16:25:44   PASS  screen_fatal_halt_composited  (21s)
16:25:44   RUN   virt_fp_isolation
16:25:52   [acpi] [17.233 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
16:25:52   [acpi] [26.698 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
16:25:52   [acpi] [26.708 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
16:25:52   [acpi] [26.712 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
16:25:52   [acpi] [26.720 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
16:25:52   [acpi] [26.723 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
16:25:52   [acpi] [26.724 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
16:25:52   [acpi] [26.951 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
16:25:52   [acpi] [26.952 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
16:25:52   [acpi] [26.952 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
16:25:52   [acpi] [26.952 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
16:25:52   [acpi] [26.951 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [0, 0, 0]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
16:25:52   [acpi] [26.951 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
16:25:52   [acpi] [26.788 cpu0 kernel] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 17012ns, its SMI count unread before the write and unread after; the first of that byte
16:25:52   [acpi] [26.949 cpu0 kernel] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 4003ns, its SMI count unread before the write and unread after; the first of that byte
16:25:52   [acpi] [26.949 cpu0 kernel] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
16:25:52   [acpi] [26.950 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1000ns, its SMI count unread before the write and unread after; the first of that byte
16:25:52   [acpi] [26.950 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
16:25:52   [acpi] [26.364 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
16:25:52   [acpi] [27.452 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
16:25:52   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
16:25:52   PASS  acpi_lock_given_back_on_one_cpu  (331s)
16:25:52   RUN   virt_first_entry
16:25:52   [power] a short stop, then the power-off: stop: 18 of 19 userland thread(s) stopped across 1 cpu(s) in 14 ms of a 0 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; this reset lands wherever the other 1 are
16:25:52   PASS  machine_shutdown_short_stop  (28s)
16:25:52   RUN   virt_unmap_touch
16:25:53 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 28s so far
16:25:53 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 28s so far
16:25:53 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 28s so far
16:25:54   PASS  libc_sockets  (44s)
16:25:54   RUN   virt_debug_refused
16:25:54 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 29s so far
16:25:55 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:26:13 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 48s so far
16:26:14 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 49s so far
16:26:23 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 58s so far
16:26:23 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 58s so far
16:26:23 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 58s so far
16:26:24 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 59s so far
16:26:25 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 60s so far
16:26:34 [build-lock] artifact staging acquired after 101.5s
16:26:34 [build-lock] artifact staging acquired after 81.1s
16:26:34 [build-lock] artifact staging acquired after 80.5s
16:26:34 [build-lock] artifact staging acquired after 71.0s
16:26:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:26:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:26:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:26:34 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:26:53 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 19s so far
16:26:54 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 20s so far
16:26:55 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 21s so far
16:27:04 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:27:04 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:27:04 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:27:04 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:27:20 [build-lock] artifact staging acquired after 116.8s
16:27:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:27:24 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 4s so far
16:27:25 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 5s so far
16:27:34 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 14s so far
16:27:34 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 14s so far
16:27:34 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 14s so far
16:27:34 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 14s so far
16:27:50 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:27:54 [build-lock] still waiting for the artifact lock (artifact staging), 150s so far — held by pid 9326 (artifact staging), 34s so far
16:27:55 [build-lock] still waiting for the artifact lock (artifact staging), 150s so far — held by pid 9326 (artifact staging), 35s so far
16:28:04 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 44s so far
16:28:04 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 44s so far
16:28:04 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 44s so far
16:28:04 [build-lock] still waiting for the artifact lock (artifact staging), 90s so far — held by pid 9326 (artifact staging), 44s so far
16:28:18   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (181s)
16:28:18   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
16:28:18 [build-lock] artifact staging acquired after 173.2s
16:28:18 [build-lock] artifact staging acquired after 172.8s
16:28:18 [build-lock] artifact staging acquired after 103.5s
16:28:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:28:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:28:18 [build-lock] artifact staging acquired after 104.2s
16:28:18   BUILT x86_64 ROOT of tests/netcase, for https_fetch  (212s)
16:28:20 [build-lock] still waiting for the artifact lock (artifact staging), 60s so far — held by pid 9326 (artifact staging), 2s so far
16:28:23 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 5s so far
16:28:34 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 16s so far
16:28:34 [build-lock] still waiting for the artifact lock (artifact staging), 120s so far — held by pid 9326 (artifact staging), 16s so far
16:28:44   PASS  https_fetch  (26s)
16:28:44   RUN   virt_readonly_copyout
16:28:46 [build-lock] artifact staging acquired after 131.8s
16:28:46   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic  (244s)
16:28:47 [build-lock] artifact staging acquired after 132.5s
16:28:47   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop  (220s)
16:28:48 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 1s so far
16:28:48 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 1s so far
16:28:48 [build-lock] artifact staging acquired after 87.6s
16:28:48   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault  (221s)
16:28:48   PASS  virt_early_panic  (2s)
16:28:48   RUN   virt_ring0_timer_in_syscall
16:28:50   PASS  virt_early_fault  (2s)
16:28:50   RUN   virt_mask_windows
16:28:50 [build-lock] artifact staging acquired after 32.8s
16:28:50   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (214s)
16:28:51 [build-lock] artifact staging acquired after 33.9s
16:28:52   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor  (213s)
16:28:52   PASS  virt_el2_drop  (5s)
16:28:52   RUN   virt_smp
16:28:53 [build-lock] artifact staging acquired after 29.1s
16:28:53   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm  (215s)
16:28:53   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (36s)
16:28:53   BUILD aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts
16:28:56   PASS  virt_user_mode  (6s)
16:28:56   RUN   virt_el1_smp
16:28:57   [virt] [ 4.389 cpu0 kernel] timer-floor: PASS span=240 floor=240 ticks: the comparator past the counter it was set from
16:28:57   PASS  virt_timer_floor  (5s)
16:28:57   RUN   virt_failed_ap_leaves_no_hole
16:29:00   BUILT aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts  (7s)
16:29:00   BUILD aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch
16:29:00   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
16:29:00   BUILD aarch64 ROOT of tests/virtjobcase, for virt_debug_refused
16:29:00   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows
16:29:00   BUILD aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall
16:29:07 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:29:07 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:29:07 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:29:07 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:29:09 [build-lock] artifact staging acquired after 2.5s
16:29:09   BUILT aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch  (9s)
16:29:11   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows  (11s)
16:29:11   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows
16:29:11 [build-lock] artifact staging acquired after 4.1s
16:29:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_ring0_timer_in_syscall  (11s)
16:29:11 [build-lock] artifact staging acquired after 4.1s
16:29:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_debug_refused  (11s)
16:29:11 [build-lock] artifact staging acquired after 4.0s
16:29:11   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (11s)
16:29:14   [virt] [ 3.889 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:14   PASS  virt_unmap_touch  (192s)
16:29:14   RUN   virt_fatal_halts_the_others_first
16:29:14   BUILD aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first
16:29:15   [virt] [ 3.815 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 1763589 and 3914791
16:29:15   PASS  virt_timer_preempts  (4s)
16:29:15   RUN   virt_reboot
16:29:15   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot
16:29:16   [virt] [ 5.015 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
16:29:16   [virt] [ 4.931 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
16:29:16   PASS  virt_ring0_timer_in_syscall  (18s)
16:29:16   RUN   virt_off_names_the_cpus_left_on
16:29:16   PASS  virt_debug_refused  (192s)
16:29:16   RUN   virt_reboot_refused_without_psci
16:29:16   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci
16:29:20 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 2s so far
16:29:21   [virt] [27.768 cpu0 kernel] irq-storm: PASS sgis=3772270/3772270 ticks=1000: the timer fired through the flood, and every SGI sent was taken
16:29:21   PASS  virt_irq_storm  (28s)
16:29:21   RUN   virt_jobs_at_el2
16:29:21   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows  (10s)
16:29:21 [build-lock] artifact staging acquired after 1.3s
16:29:21   BUILD aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows
16:29:21   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp
16:29:21   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
16:29:21   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_smp
16:29:21   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on
16:29:22 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 1s so far
16:29:23 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 2s so far
16:29:23   BUILT aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first  (10s)
16:29:23   BUILD aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first
16:29:23 [build-lock] artifact staging acquired after 1.6s
16:29:23 [build-lock] waiting for the artifact lock (artifact staging) — held, but the holder left no readable note
16:29:23 [build-lock] artifact staging acquired after 754.4ms
16:29:23 [build-lock] artifact staging acquired after 9.8ms
16:29:23 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:25 [build-lock] artifact staging acquired after 1.4s
16:29:25   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot  (9s)
16:29:25   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci  (9s)
16:29:27   [virt] [ 4.573 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
16:29:27   PASS  virt_first_entry  (215s)
16:29:27   RUN   virt_random_differs
16:29:27   [virt] [ 4.192 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
16:29:27   PASS  virt_fp_isolation  (223s)
16:29:27   RUN   virt_no_seed_refused
16:29:27   [virt] [ 4.968 test-runner pid=19] a syscall writes only where its caller could store
16:29:27   PASS  virt_readonly_copyout  (43s)
16:29:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:30 [build-lock] artifact staging acquired after 911.5ms
16:29:30   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp  (8s)
16:29:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 9326 (artifact staging), 0s so far
16:29:30   [virt] reboot: this machine has no reset this kernel performs — refused, and the job ended exit 1
16:29:30   PASS  virt_reboot_refused_without_psci  (5s)
16:29:30 [build-lock] artifact staging acquired after 1.6s
16:29:30   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on  (9s)
16:29:30 [build-lock] artifact staging acquired after 1.5s
16:29:30   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_smp  (9s)
16:29:30 [build-lock] artifact staging acquired after 1.1s
16:29:30   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (9s)
16:29:32   [virt] [ 4.965 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: ca13f5c387c7ddcca436ce603ab001d96bfe478f21a3adce22d26e73b046c57c
16:29:32   [virt] [ 9.799 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 7866 and 2456676
16:29:33   [virt] [10.244 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
16:29:33   [virt] [10.330 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
16:29:34   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
16:29:34   PASS  virt_reboot  (9s)
16:29:35   [virt] [12.095 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:35   [virt] [12.241 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
16:29:35   [virt] [12.297 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
16:29:35   PASS  virt_no_seed_refused  (8s)
16:29:35   [virt] [12.831 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: 8a32fcb9570b231a97b90202646b8e8ecf498ad15338e2cf23f95ee25ec24127
16:29:35   [virt] [13.124 test-runner pid=19] a syscall writes only where its caller could store
16:29:35   PASS  virt_jobs_at_el2  (14s)
16:29:37   [virt] [ 4.926 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: 538d53939b374fffa4005b5aff01fdc5bbc82d49be47d2cced8d7e482cb72689
16:29:37   [virt] two boots keyed from the loader's seed printed two draws
16:29:37   PASS  virt_random_differs  (11s)
16:29:40   [virt] [ 8.939 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:40   [virt] 8 CPUs entered at EL2, started through SMC, and scheduling
16:29:40   [virt] [ 9.709 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:40   [virt] 8 CPUs entered at EL1, started through HVC, and scheduling
16:29:40   [virt] [ 8.877 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:40   [virt] [ 9.107 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:29:40   [virt] a non-last AP never started and the dense machine ran its job
16:29:40   PASS  virt_failed_ap_leaves_no_hole  (34s)
16:29:40   [virt] [10.185 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
16:29:40   [virt] [ 9.669 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
16:29:41   [virt] [10.401 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
16:29:41   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
16:29:41   PASS  virt_el1_smp  (36s)
16:29:41   [virt] [ 9.832 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
16:29:41   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
16:29:41   PASS  virt_smp  (40s)
16:29:51   [virt] [6, 7] left on and named; the rest CPU_OFF, then 0x0 SYSTEM_OFF; 1483 PSCI call(s) traced
16:29:51   PASS  virt_off_names_the_cpus_left_on  (25s)
16:30:00 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 9326 (artifact staging), 30s so far
16:30:30   BUILT aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows  (68s)
16:30:30 [build-lock] artifact staging acquired after 59.7s
16:30:30   BUILT aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first  (67s)
16:30:38   [virt] [ 8.131 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
16:30:39   [panic] the fatal path on cpu2 left every other CPU halted with interrupts masked
16:30:39   PASS  virt_fatal_halts_the_others_first  (9s)
16:30:54 FAIL virt_mask_windows: STALLED: waiting for the boot's last word — it went quiet
--- what the guest said while it was waited on ---
[ 8.184 cpu6 kernel] windows: cpu0 irqs_off_ns=241000 preempt_off_ns=207000
[ 8.184 cpu6 kernel] windows: cpu1 irqs_off_ns=37976000 preempt_off_ns=26153000
[ 8.184 cpu6 kernel] windows: cpu2 irqs_off_ns=0 preempt_off_ns=0
[ 8.184 cpu6 kernel] windows: cpu3 irqs_off_ns=361000 preempt_off_ns=584000
[ 8.184 cpu6 kernel] windows: cpu4 irqs_off_ns=0 preempt_off_ns=0
[ 8.184 cpu6 kernel] windows: cpu5 irqs_off_ns=0 preempt_off_ns=0
[ 8.184 cpu6 kernel] windows: cpu6 irqs_off_ns=51577000 preempt_off_ns=878000
[ 8.184 cpu6 kernel] windows: cpu7 irqs_off_ns=0 preempt_off_ns=0
[ 8.185 cpu6 kernel] exit: unmap_touch pid=4 code=0 cpu=217ms peak=34MB allocs=10 frees=0 syscalls=166 syscall_wall=352ms 1=16 6=1 10=51 14=1 21=8 24=24 25=8 40=8 41=8 50=9 51=1 63=9 72=1 73=1 91=1 99=1 102=3 105=3 106=4 108=8
[ 8.195 cpu4 kernel] spawn: /system/bin/test_rs_counters_read pid=13 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=3ms)
16:30:54   STALL virt_mask_windows  (34s)
16:30:54   --- 45 guests, 28 of them not the shipping kernel, 3 kernel build(s): ["", "boot-actuators,test-actuators", "mask-windows"]

16:30:54 host: fastest boot 1097 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
16:30:54 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
16:30:54 failures:
16:30:54     virt_mask_windows: STALLED: waiting for the boot's last word — it went quiet

16:30:54 1 of those reds are the ceiling: virt_mask_windows

16:30:54 test result: FAILED. 41 passed, 1 failed, 0 invalidated, 42 total (684.8s; workers: 5136s building, 2302s testing)
16:30:54 [toyos] this red run's serial logs are kept at <dev>/toyos-tls/target/red-run-serial/toyos-tmp-9326-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `<dev>/toyos-tls/target/debug/deps/toyos_build-5f056120d951bf95` (exit status: 1)

@Japabu Japabu changed the title An unchanged ureq and rustls client on a ring fork fetches byte-exact over TLS 1.3 in a guest, trusting the Mozilla roots ROOT now carries An unchanged ureq and rustls client on a ring fork fetches byte-exact over TLS 1.3 in a guest, trusting the Mozilla roots every image carries with their licence's text Oct 9, 2026
@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Review of #810 at e3b11331e, second round. The fork ToyOSOrg/ring toyos-0.17.14 is unchanged at 34818c459, and both lockfiles name it.

Net lines (git diff --shortstat origin/main...e3b11331e): 19 files, +1496 −437. Production: src/build.rs +38 −11, src/licence.rs +122 −20 (its unit tests included), Cargo.toml +9, doom +4 −16. Data: licenses/ +61, NOTICE +14. Tests: ring_kat.rs +251, https.rs +164, tests/toyos.rs +98, https_get.rs +77. Lockfiles +552 −367. Issues +97 −23.

Round-1 BLOCKERs

  • Merge onto main: CLOSED. git merge-base origin/main e3b11331e is d6298c83e, main's tip, so A lost .local name is probed for again a minute after each loss: claimed when no host answers, at most one probing a minute whatever a peer sends, and one log line a loss #800, The kernel's random bytes come from a ChaCha20 generator keyed from the loader's seed and the CPU's sources, and 17 of the AArch64 guest tests run under HVF #802 and The node keeps the pipe order std reads a stream's end by: a FIN after a shutdown reads as a FIN, a failure as a reset #803 are under every run. At e3b11331e:

    • cargo run -- --ci host: host3.exit EXIT=0, [ci] Host: 78 step(s), all green.
    • Whole cargo test --no-fail-fast: guest2.exit EXIT=0, 42 passed, 42 total, and toyos-checks 39 passed.
    • https_fetch: fetch2.exit EXIT=0. Every ring_kat line passed, ok bytes=393216 …, refused not-valid-for-name, refused unknown-issuer.

    All three logs are posted.

  • src/build.rs extra_files match and assert: CLOSED. build_and_assemble pushes TRUST_ROOTS and the licence text with no condition. https_fetch stages etc/ssl/harness-cert.pem under a name of its own and passes it in argv.

  • The duplicated cc_env: CLOSED. GuestEnv::new(sysroot, arch) holds it once, and cargo_build applies it. The keys are CC_/AR_/CFLAGS_ suffixed by the userland triple (src/clang.rs:150-157), so the kernel's and loader's cargo_build calls (other triples) read none of them. build_toyos_bins' --bins now gets the toolchain's clang, as TestBuild did. The guest suite at the head is green under that.

  • The CDLA licence: CLOSED, and it matches the ruling.

    • The owner allowed CDLA-Permissive-2.0 for the Mozilla roots. ALLOWED does not take it.
    • DATA_ONLY passes it only through Scope::Data, and Scope::Data is built in one place, judge_trust_roots, which runs only on build::TRUST_ROOTS_CRATE. No crate an image links and no committed file can reach it: judge_files maps Terms to Code/Font only.
    • The shipped text is the committed copy, through include_bytes!, and the gate refuses unless it equals the resolved crate's LICENSE.
    • Measured on the gate: g1 (DATA_ONLY empty) gives MUTANT_EXIT=101 naming CDLA-Permissive-2.0. g2 (another licence text shipped) gives MUTANT_EXIT=101 which is not its LICENSE. g0 gives EXIT=0. All three ran at 216f33b35, which differs from the head by six lines of one issue file.
    • The roots and the text are on ROOT (buildonly.exit EXIT=0, head e3b11331e). NOTICE states the ruling no more broadly than it was given.
  • ring_kat short of the roots' algorithms: CLOSED. It now checks:

    • SHA-384("abc"), FIPS 180-2 D.1.
    • ECDSA P-384/SHA-384, RFC 6979 A.2.6 "sample". I checked Ux, r and s against the RFC myself.
    • RSA PKCS#1 v1.5 and RSA-PSS SHA-256 at 2048 bits, from CAVP SigVer.

    Each signature is also refused with a bit flipped. m8 flips the PKCS#1 vector's expected signature (…7027 → …7026) and turns https_fetch red at the head: MUTANT_EXIT=1, rsa pkcs#1 v1.5 sha-256 2048 cavp SigVer15 does not verify, restored: []. m1–m5 and m7 are red at the head too.

BLOCKER

None open.

NOTE

  • src/licence.rs:1012-1026 — judge_trust_roots_of runs a fourth cargo metadata --locked over the root workspace. judge already holds that workspace's document in docs: one workspace, and webpki-root-certs is a non-optional dependency of the root package, so it resolves under any feature set. Fix: find the package in the doc whose members holds root/Cargo.toml, and delete the extra call and its Graph::new.
  • PR body, "Gates" — guest / suite under KVM at the merged head is still owed. That run takes ring's ADX/BMI2 Montgomery, AES-NI and AVX2 paths, which qemu64 under TCG never runs, and on which the new RSA and P-384 answers are the only oracle. Land only once it is green, with its log in the body.

LAND AFTER NAMED CHANGES

… document it already holds

`judge_trust_roots_of` ran a fourth `cargo metadata --locked` over the
root workspace and built a `Graph` over it only to find one package by
name. `judge` already holds a document of that workspace: the one whose
`members` holds the root `Cargo.toml`. `webpki-root-certs` is a
non-optional dependency of the root package, so whichever feature set
that document was resolved with, it resolves the crate, and the gate
reads it from there. A shipped tree with no crate in the root workspace
is refused by name rather than guessed at.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Round 3: the gate's controls at 88d5c7c0f. judge_trust_roots_of now reads webpki-root-certs out of the document judge already holds for the root workspace; g0–g2 re-run at the head with round 2's patches unchanged (git apply --check clean) and round 2's runner, each cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree. Verdicts as in round 2: g0 MUTANT_EXIT=0, g1 MUTANT_EXIT=101 naming CDLA-Permissive-2.0, g2 MUTANT_EXIT=101 which is not its LICENSE; each restored: [].

control-g0-the-gate-on-this-tree.log
head: 88d5c7c0f50949f313a0cf4a0454d2cd0ede67f7
patch: g0-the-gate-on-this-tree.patch
diff --git a/src/licence.rs b/src/licence.rs
index 334331647..9d017736f 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -1419,6 +1419,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 9.96s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 356 filtered out; finished in 1.36s

MUTANT_EXIT=0
restored: []
control-g1-cdla-not-allowed-as-data.log
head: 88d5c7c0f50949f313a0cf4a0454d2cd0ede67f7
patch: g1-cdla-not-allowed-as-data.patch
diff --git a/src/licence.rs b/src/licence.rs
index 334331647..748be2d3f 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -86,7 +86,7 @@ const FONTS_ONLY: &[&str] = &["OFL-1.1"];
 /// Allowed for the data the build writes into an image out of
 /// [`crate::build::TRUST_ROOTS_CRATE`], and nowhere else: the owner allowed
 /// CDLA-Permissive-2.0 for the Mozilla roots.
-const DATA_ONLY: &[&str] = &["CDLA-Permissive-2.0"];
+const DATA_ONLY: &[&str] = &[];
 
 /// What a licence is judged as: [`FONTS_ONLY`] passes only for a font and
 /// [`DATA_ONLY`] only for the trust roots.
@@ -1419,6 +1419,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 3.56s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... FAILED

failures:

---- licence::tests::the_gate_on_this_tree stdout ----
17:38:08   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
17:38:08   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
17:38:08   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
17:38:08   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
17:38:08   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
17:38:08   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
17:38:08   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
17:38:08   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
17:38:08   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
17:38:08   crate doom 0.1.0 (<dev>/toyos-tls/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
17:38:08   crate windows-sys 0.61.100 (<dev>/toyos-tls/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
17:38:08   crate windows-link 0.0.0 (<dev>/toyos-tls/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
17:38:08   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
17:38:08   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
17:38:08   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom

thread 'licence::tests::the_gate_on_this_tree' (230170730) panicked at src/licence.rs:1424:54:
called `Result::unwrap()` on an `Err` value: "1 refusal(s):\n  crate webpki-root-certs 1.0.9, the data of etc/ssl/cert.pem is \"CDLA-Permissive-2.0\": not allowed: CDLA-Permissive-2.0; pulled in by build::trust_roots"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    licence::tests::the_gate_on_this_tree

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 356 filtered out; finished in 2.87s

error: test failed, to rerun pass `-p toyos-build --lib`
MUTANT_EXIT=101
restored: []
control-g2-another-licence-text-beside-the-roots.log
head: 88d5c7c0f50949f313a0cf4a0454d2cd0ede67f7
patch: g2-another-licence-text-beside-the-roots.patch
diff --git a/src/build.rs b/src/build.rs
index c96861e52..3c0534c6d 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -728,7 +728,7 @@ pub const TRUST_ROOTS_CRATE: &str = "webpki-root-certs";
 /// lets the roots be shared only with it.
 pub const TRUST_ROOTS_LICENCE: (&str, &[u8]) = (
     "etc/ssl/CDLA-Permissive-2.0.txt",
-    include_bytes!("../licenses/CDLA-Permissive-2.0-webpki-root-certs.txt"),
+    include_bytes!("../licenses/MIT-PhosphorIcons.txt"),
 );
 
 /// The Mozilla root program's authorities as `webpki-root-certs` publishes
diff --git a/src/licence.rs b/src/licence.rs
index 334331647..9d017736f 100644
--- a/src/licence.rs
+++ b/src/licence.rs
@@ -1419,6 +1419,11 @@ mod tests {
         judge_licence(licence, Scope::Code)
     }
 
+    #[test]
+    fn the_gate_on_this_tree() {
+        judge(Path::new(env!("CARGO_MANIFEST_DIR"))).unwrap();
+    }
+
     #[test]
     fn a_disallowed_licence_is_refused_by_name() {
         let why = verdict_of("GPL-2.0-only").expect("GPL passed");
--- run: cargo test --lib -p toyos-build licence::tests::the_gate_on_this_tree
   Compiling toyos-build v0.1.0 (<dev>/toyos-tls)
    Finished `test` profile [optimized + debuginfo] target(s) in 4.34s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-ae0dec285d313eb4)

running 1 test
test licence::tests::the_gate_on_this_tree ... FAILED

failures:

---- licence::tests::the_gate_on_this_tree stdout ----
17:38:16   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
17:38:16   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
17:38:16   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
17:38:16   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
17:38:16   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
17:38:16   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
17:38:16   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
17:38:16   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
17:38:16   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
17:38:16   crate doom 0.1.0 (<dev>/toyos-tls/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
17:38:16   crate windows-sys 0.61.100 (<dev>/toyos-tls/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
17:38:16   crate windows-link 0.0.0 (<dev>/toyos-tls/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
17:38:16   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
17:38:16   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
17:38:16   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom

thread 'licence::tests::the_gate_on_this_tree' (230212002) panicked at src/licence.rs:1424:54:
called `Result::unwrap()` on an `Err` value: "1 refusal(s):\n  crate webpki-root-certs 1.0.9, the data of etc/ssl/cert.pem is \"CDLA-Permissive-2.0\": ships etc/ssl/CDLA-Permissive-2.0.txt beside them, which is not its LICENSE; pulled in by build::trust_roots"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    licence::tests::the_gate_on_this_tree

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 356 filtered out; finished in 1.22s

error: test failed, to rerun pass `-p toyos-build --lib`
MUTANT_EXIT=101
restored: []

@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Round 3 gates at 88d5c7c0f. cargo run -- --ci host: EXIT=0, [ci] Host: 78 step(s), all green, the licence step 6 exception(s) stand, and nothing else is refused. The log is 462581 bytes, over a comment's size: below is every line carrying [ci] (grep '\[ci\]'), the whole kept in the job's logs. cargo run -- --build-only: EXIT=0, whole log below; ROOT adds etc/ssl/cert.pem (181603 bytes) and etc/ssl/CDLA-Permissive-2.0.txt (2371 bytes).

host.log, the [ci] lines
17:38:25 === [ci] the build system
17:38:43 [ci] the build system: cargo test --lib
17:38:43 === [ci] the harness's own checks
17:38:45 [ci] the harness's own checks: cargo test --test toyos-checks
17:38:45 === [ci] the workspace's host members
17:41:08 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update
17:41:08 === [ci] the kernel's library
17:41:09 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check
17:41:09 === [ci] the licences of what ships
17:41:11 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused
17:41:11 === [ci] clippy and the bare targets
17:41:11 [ci] clippy and the bare targets: installed
17:41:11 === [ci] clippy, warnings denied
17:41:19 [ci] clippy, warnings denied: clean
17:41:19 === [ci] kernel-loom without loom
17:41:20 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor
17:41:20 === [ci] control `wake-fence-off`
17:41:20 [ci] control `wake-fence-off`: 1 verdict(s) reached
17:41:20 === [ci] control `lock-acquire-off`
17:41:20 [ci] control `lock-acquire-off`: 1 verdict(s) reached
17:41:20 === [ci] control `owed-fence-off`
17:41:21 [ci] control `owed-fence-off`: 1 verdict(s) reached
17:41:21 === [ci] control `seqlock-writer-fence-off`
17:41:21 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached
17:41:21 === [ci] control `serial-try-lock-then-some`
17:41:21 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached
17:41:21 === [ci] control `reap-raise-relaxed`
17:41:22 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached
17:41:22 === [ci] control `shootdown-serve-relaxed`
17:41:22 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached
17:41:22 === [ci] control `shootdown-served-relaxed`
17:41:23 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached
17:41:23 === [ci] control `roster-commit-relaxed`
17:41:23 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached
17:41:23 === [ci] control `smp-ready-split`
17:41:23 [ci] control `smp-ready-split`: 1 verdict(s) reached
17:41:23 === [ci] control `log-commit-release-off`
17:41:24 [ci] control `log-commit-release-off`: 2 verdict(s) reached
17:41:24 === [ci] control `shard-publish-relaxed`
17:41:24 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached
17:41:24 === [ci] control `log-ring-publish-relaxed`
17:41:24 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached
17:41:24 === [ci] control `log-ring-tail-relaxed`
17:41:25 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached
17:41:25 === [ci] control `log-ring-loads-swapped`
17:41:25 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached
17:41:25 === [ci] control `post-is-an-answer`
17:41:25 [ci] control `post-is-an-answer`: 3 verdict(s) reached
17:41:25 === [ci] control `poll-fire-load-store`
17:41:26 [ci] control `poll-fire-load-store`: 2 verdict(s) reached
17:41:26 === [ci] control `sleeplock-acquire-off`
17:41:26 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached
17:41:26 === [ci] control `device-irq-lossy`
17:41:27 [ci] control `device-irq-lossy`: 1 verdict(s) reached
17:41:27 === [ci] control `dump-report-relaxed`
17:41:27 [ci] control `dump-report-relaxed`: 1 verdict(s) reached
17:41:27 === [ci] control `no-preempt-guard`
17:41:27 [ci] control `no-preempt-guard`: 1 verdict(s) reached
17:41:27 === [ci] control `doorbell-kick-relaxed`
17:41:28 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached
17:41:28 === [ci] control `push-fence-relaxed`
17:41:28 [ci] control `push-fence-relaxed`: 1 verdict(s) reached
17:41:28 === [ci] control `commit-ignores-notify`
17:41:29 [ci] control `commit-ignores-notify`: 2 verdict(s) reached
17:41:29 === [ci] control `notify-flag-load-only`
17:41:32 [ci] control `notify-flag-load-only`: 1 verdict(s) reached
17:41:32 === [ci] control `gate-fence-off`
17:41:32 [ci] control `gate-fence-off`: 1 verdict(s) reached
17:41:32 === [ci] control `poll-fire-load-store`
17:41:32 [ci] control `poll-fire-load-store`: 3 verdict(s) reached
17:41:32 === [ci] control `fault-posted-before-it-is-set`
17:41:33 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached
17:41:33 === [ci] control `victim-retires-mid-probe`
17:41:33 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached
17:41:33 === [ci] control `counting-allocator`
17:41:33 [ci] control `counting-allocator`: 2 verdict(s) reached
17:41:33 === [ci] control `mutate-spawn-skips-the-insert-recheck`
17:41:34 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached
17:41:34 === [ci] control `mutate-claim-teardown-always-wins`
17:41:34 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached
17:41:34 === [ci] control `mutate-kill-waits-for-its-victims`
17:41:34 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached
17:41:34 === [ci] control `mutate-first-out-tears-down`
17:41:35 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached
17:41:35 === [ci] control `mutate-join-collects-in-a-teardown`
17:41:35 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached
17:41:35 === [ci] control `mutate-last-out-leaves-before-its-teardown`
17:41:35 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached
17:41:35 === [ci] control `mutate-place-skips-the-insert-recheck`
17:41:35 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached
17:41:35 === [ci] control `mutate-refused-spawn-keeps-the-count`
17:41:36 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached
17:41:36 === [ci] control `mutate-landed-child-retires-nothing`
17:41:36 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached
17:41:36 === [ci] control `mutate-publish-before-the-children`
17:41:36 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached
17:41:36 === [ci] control `mutate-walk-in-one-hold`
17:41:37 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached
17:41:37 === [ci] control `mutate-spawner-handle-after-the-landing`
17:41:37 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached
17:41:37 === [ci] control `mutate-spawner-handle-before-the-childs-own`
17:41:37 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached
17:41:37 === [ci] control `placement-ignores-staleness`
17:41:37 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached
17:41:37 === [ci] control `mutate-session-end-forgets`
17:41:42 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached
17:41:42 === [ci] control `mutate-abort-keeps-inflight`
17:41:42 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached
17:41:42 === [ci] control `mutate-no-reissue-after-loss`
17:41:43 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached
17:41:43 === [ci] control `publish-relaxed`
17:41:43 [ci] control `publish-relaxed`: 1 verdict(s) reached
17:41:43 === [ci] control `no-clamp`
17:41:43 [ci] control `no-clamp`: 1 verdict(s) reached
17:41:43 === [ci] control `end-keeps-inflight`
17:41:44 [ci] control `end-keeps-inflight`: 1 verdict(s) reached
17:41:44 === [ci] userland/acpiserver
17:41:44 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml
17:41:44 === [ci] userland/acpiserver/aml
17:41:45 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml
17:41:45 === [ci] userland/calc
17:41:46 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml
17:41:46 === [ci] userland/compositor/desktop
17:41:46 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml
17:41:46 === [ci] userland/diskserver
17:41:46 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml
17:41:46 === [ci] userland/fileserver
17:41:47 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml
17:41:47 === [ci] userland/logkeeper
17:41:47 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml
17:41:47 === [ci] userland/netstack
17:41:47 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml
17:41:47 === [ci] userland/netstack/mdns
17:41:48 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml
17:41:48 === [ci] userland/netstack/node
17:41:49 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml
17:41:49 === [ci] userland/pkg
17:41:49 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml
17:41:49 === [ci] userland/soundserver
17:41:50 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml
17:41:50 === [ci] userland/soundserver/mixer
17:41:51 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml
17:41:51 === [ci] userland/sshserver
17:41:52 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml
17:41:52 === [ci] userland/symbolize
17:41:53 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml
17:41:53 === [ci] the apps for linux
17:41:54 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:41:54 === [ci] the apps for macos
17:41:56 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:41:56 === [ci] the apps for windows
17:41:57 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare
17:41:57 === [ci] the toyos SDK
17:41:58 [ci] the toyos SDK: cargo test -p toyos
17:41:58 === [ci] nothing left in $TMPDIR or /tmp
17:41:58 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
17:41:58 [ci] Host: 78 step(s), all green
buildonly.log
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
     Running `target/debug/toyos-build --build-only`
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.19s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.37s
warning: the following packages contain code that will be rejected by a future version of Rust: winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
17:42:02 root: adding 'bin/acpiserver' (1003560 bytes)
17:42:02 root: adding 'bin/calc' (1285752 bytes)
17:42:02 root: adding 'bin/compositor' (2581312 bytes)
17:42:02 root: adding 'bin/diskserver' (753632 bytes)
17:42:02 root: adding 'bin/doom' (1830056 bytes)
17:42:02 root: adding 'bin/editor' (787888 bytes)
17:42:02 root: adding 'bin/filepicker' (741120 bytes)
17:42:02 root: adding 'bin/files' (2393256 bytes)
17:42:02 root: adding 'bin/fileserver' (1464064 bytes)
17:42:02 root: adding 'bin/host' (565208 bytes)
17:42:02 root: adding 'bin/inspect' (722000 bytes)
17:42:02 root: adding 'bin/logkeeper' (910704 bytes)
17:42:02 root: adding 'bin/netstack' (1057992 bytes)
17:42:02 root: adding 'bin/paint' (733256 bytes)
17:42:02 root: adding 'bin/pkg' (810104 bytes)
17:42:02 root: adding 'bin/proctest' (686032 bytes)
17:42:02 root: adding 'bin/shell' (791592 bytes)
17:42:02 root: adding 'bin/snake' (997400 bytes)
17:42:02 root: adding 'bin/soundserver' (916632 bytes)
17:42:02 root: adding 'bin/sshserver' (4798632 bytes)
17:42:02 root: adding 'bin/supervisor' (1299408 bytes)
17:42:02 root: adding 'bin/swap' (708312 bytes)
17:42:02 root: adding 'bin/symbolize' (692816 bytes)
17:42:02 root: adding 'bin/terminal' (810072 bytes)
17:42:02 root: adding 'bin/toybox' (1105840 bytes)
17:42:02 root: adding 'bin/trace' (563056 bytes)
17:42:02 root: adding 'bin/update' (795448 bytes)
17:42:02 root: adding 'etc/os-release' (287 bytes)
17:42:02 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
17:42:02 root: adding 'etc/ssl/cert.pem' (181603 bytes)
17:42:02 root: adding 'etc/system.manifest' (2912 bytes)
17:42:02 root: adding 'share/doom1.wad' (4196020 bytes)
17:42:02 root: adding 'share/fonts/JetBrainsMono-Regular-8x16.font' (66404 bytes)
17:42:02 root: adding 'share/fonts/ofl.txt' (4216 bytes)
17:42:02 root: adding 'share/fonts/opensans-bold.ttf' (147264 bytes)
17:42:02 root: adding 'share/fonts/opensans-bolditalic.ttf' (153308 bytes)
17:42:02 root: adding 'share/fonts/opensans-italic.ttf' (153256 bytes)
17:42:02 root: adding 'share/fonts/opensans-regular.ttf' (147528 bytes)
17:42:02 root: adding 'share/hello.rs' (55 bytes)
17:42:02 root: adding 'share/icons/arrow-down-right-bold.svg' (211 bytes)
17:42:02 root: adding 'share/icons/crosshair-simple-bold.svg' (809 bytes)
17:42:02 root: adding 'share/icons/cursor-bold.svg' (560 bytes)
17:42:02 root: adding 'share/icons/file-bold.svg' (293 bytes)
17:42:02 root: adding 'share/icons/folder-bold.svg' (303 bytes)
17:42:02 root: adding 'share/icons/minus-bold.svg' (253 bytes)
17:42:02 root: adding 'share/icons/square-bold.svg' (264 bytes)
17:42:02 root: adding 'share/icons/x-bold.svg' (392 bytes)
17:42:02 root: adding 'share/soundfont.sf2' (15546764 bytes)
17:42:02 root: adding 'share/wallpaper.rgb' (6220808 bytes)
17:42:02 root: symlink 'bin/cat' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/cp' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/echo' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/free' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/grep' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/hexdump' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/locale' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/ls' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/mkdir' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/mv' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/net' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/ps' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/pwd' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/reboot' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/rm' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/screen' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/shutdown' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/spin' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/stats' -> '/system/bin/toybox'
17:42:02 root: symlink 'bin/tone' -> '/system/bin/toybox'
17:42:02 Signed with this checkout's throwaway key SHA256:x1XWYKTedh30nJSbvStJneER7AuHN0sD3QcvtCJirXE at version 1791567718
17:42:02 Build finished.
Boot image: <dev>/toyos-tls/target/bootable.img

@Japabu
Japabu marked this pull request as ready for review October 9, 2026 17:43
@Japabu

Japabu commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

CI at 88d5c7c0f, read from each job's log: host 79 steps all green; toolchain restored (llvm a2cc063281d9f279, compiler 6c76c19e5ffcc869, freestanding 0f5a5faab7bbc78c, sysroot fcaf4949f5310fa6); guest suite under KVM 42/42 ok with PASS https_fetch (the review's condition; recorded in the body). Merges clean with main 198a9d38e. Queued.

@Japabu
Japabu added this pull request to the merge queue Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant