Built on rrnewton/hermit main cd9e333e8429 and rrnewton/reverie main 9443a6b28257. Branches (no PRs): VladimirMakaev/hermit and VladimirMakaev/reverie train22/<N>-<slug>. Each cluster is one linear branch on the previous one's tip; each PR's own commits are cherry-picked with their messages, authors and author dates unchanged, and every collision is resolved by a separate Train N: resolve ... commit right after the PR that meets it. Where a cherry-pick met a conflict the resolvers could not merge line by line, the PR commit takes the PR's side of that hunk (or the train's, where the PR's side was already in the train) and the resolution commit after it restores the other side. Two kinds of hunk are merged inside the pick because they need no judgment: version and test-count pins (arithmetic), and comment-only hunks where one side only appends sentences (the other side's text, then the appended sentences, rewrapped).
Reverie base and newer heads: this train's Reverie branch is built on Reverie 9443a6b28257, main's pin when the trains were built. Main has since moved its Reverie pin twice, to bca539918 (c67101103) and then to 1c22faddc (4f409f883), so this train's Reverie head does not descend from main's current pin. For a landing on current main, the pull requests now carry restacked heads (pushed 2026-11-01): reverie#1153 e1b54ae6eb90 (was a09bc2932007) on Reverie main 1c22faddc, and on Hermit main d192e5d72 #4769 1d74a108c3e9 (re-pinned to e1b54ae6e) and #4845 bcbc98a5d8eb. #4769's CARRY TO block reads "e1b54ae6e from bca539918" beneath main's own. On a main past 4f409f883, which pins 1c22faddc, #4769's pin commit conflicts with main's CARRY TO 1c22faddc block: keep main's, and #4769's becomes "from 1c22faddc" with only #1153's two commits. Rebuild the train only if the lander asks.
Review: complete (no resolution commit over 50 non-pin lines).
Reverie branch train22/1-reverie-pin at a09bc2932007 (on 9443a6b28257):
- reverie#1153 head
a09bc2932007->a09bc2932007Fail closed when an instruction offset cannot be placed
Pin the landing needs: land the Reverie branch's commits on rrnewton/reverie main first (each PR's own commits and the resolution commits, in this order), then move Hermit's Reverie pin to the landed Reverie SHA in place of the train's pin a09bc2932007 (every site the pin commit touches, with a CARRY TO block from main's pin).
Hermit, on cd9e333e8429:
- #4769 head
522920468a70->522920468a70Let chaos preempt inside straight-line code with --chaos-instruction-offset - #4845 head
3a720d6d23ca->3a720d6d23caCarry --chaos-instruction-offset decisions through schedule traces, schedule replay and analyze
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1078 files)- heads: every pull request at its live GitHub head (2 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 13 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3351 tests run: 3351 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1485 tests run: 1460 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 95 passed, 1 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 27: 27 in the named baseline, 0 NEW; 0 baseline tests passed here
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): 217 passed; 0 failed- Reverie
cargo clippy --workspace --all-targets -- -D warnings: fails, pre-existing (main): Reverie main 9443a6b28 failscargo clippy --workspace --all-targets -- -D warningsthe same way (reverie-liteinst unused imports in its strace and native_unpublished test targets; reverie-dbt's lib test) (reverie-ptrace unit tests not reached) - integration tests named in the PRs' Validation sections: 6 pass here; 8 STRICT, 1 TIMEOUT
- a_bounded_chaos_schedule_replays_as_recorded: strict here; bare-metal Intel host: PASS (7.1s)
- a_chaos_instruction_offset_run_verifies_and_replays_at_its_offsets: strict here; bare-metal Intel host: PASS (4.4s)
- a_killed_vfork_parent_does_not_stop_the_schedule: strict here; bare-metal Intel host: PASS (0.3s)
- a_schedule_recorded_with_the_pipe_wake_latency_replays_only_with_it: strict here; bare-metal Intel host: PASS (6.9s)
- an_instruction_offset_record_replays_from_its_schedule_and_analyze_verifies_its_endpoints: strict here; bare-metal Intel host: PASS (28.7s)
- chaos_bounds_how_long_a_spinner_keeps_a_new_thread_waiting: strict here; bare-metal Intel host: PASS (3.7s)
- chaos_instruction_offset_splits_a_branch_free_window: strict here; bare-metal Intel host: PASS (6.3s)
- posix_timer_rows_verify_under_random_and_chaos_schedules: strict here; bare-metal Intel host: PASS (14.5s)
- run_chaos_preemption_replay_reuses_the_recorded_epoch: timeout here; bare-metal Intel host: PASS (1.7s)
Reverie base and newer heads: this train's Reverie branch is built on train 1's (Reverie 9443a6b28257, main's pin when the trains were built). Main has since moved its Reverie pin to bca539918 (c67101103) and then to 1c22faddc (4f409f883), so this train's Reverie head does not descend from main's current pin. For a landing on current main, reverie#1137 now carries a restacked head (pushed 2026-11-01): 52449e346e3b (was a8f2fd5fa418) on Reverie main 1c22faddc; it and reverie#1153's e1b54ae6e both merge cleanly into Reverie main 19c014c65. Rebuild the train only if the lander asks.
Review: complete (every resolution commit over the threshold approved by both seats: 96f70bf14 239 lines).
Reverie branch train22/2-aarch64 at a6f6508abab4 (on a09bc2932007):
- reverie#1137 head
a8f2fd5fa418->9331aabf6942Take the aarch64 skid margin from each core's MIDR_EL1- resolution
eb0400b1a89b: Train 2: resolve the reverie/src/pmu_config.rs catalog row between #1153 and #1137
- resolution
- reverie#1141 head
418becc511e7->70172a0eb5eeGive aarch64 its own skid latency budget for staged timer events- resolution
18a452a605c7: Train 2: resolve the reverie/src/pmu_config.rs catalog row between #1137 and #1141
- resolution
- reverie#1145 head
ff765efa7eaf->b72d97cdfb38Step toward a precise timer target branch to branch on aarch64 - reverie#1157 head
c4fc7202f462->efb1e9988c39Run a load-exclusive sequence as one unit on the way to a precise timer target on aarch64 - reverie#1149 head
bc2cebde5c30->4a3877367807Keep a guest's SIGTRAP state across single steps on aarch64 - reverie#1150 head
8d4b7d7055fb->bb34c6ed0bbaRepair SIGTRAP's action through an unsealed page where mseal is missing - reverie#1156 head
001571ae56e7->6fc4a5e9bfaaRead SIGTRAP's state only where a step can reset it - reverie#1158 head
47c95ff5b98a->21eee84b4856Read the guest's mask once per timer sequence - reverie#1167 head
53a37a3bd709->ec94e5298c9eRequeue a signal the kernel takes ahead of a timer step's report - reverie#1168 head
aa943c4d5255->7a55dd3155dfTake a maskless poll's step as a call that keeps the mask - reverie#1172 head
0dd3006af7b9->f50ace2600e0Keep a guest's pending, blocked SIGTRAP across Reverie's single-steps- resolution
a6f6508abab4: Train 2: resolve the timer's module doc between #1145 and #1172
- resolution
Pin the landing needs: land the Reverie branch's commits on rrnewton/reverie main first (each PR's own commits and the resolution commits, in this order), then move Hermit's Reverie pin to the landed Reverie SHA in place of the train's pin a6f6508abab4 (every site the pin commit touches, with a CARRY TO block from main's pin).
Hermit, on 3a720d6d23ca:
- #4735 head
311d35b3303e->4e78c93f8662Rewrite aarch64 load/store-exclusive retry loops to LSE atomics before a run - #4795 head
aaee5aa1f51d->edfa08183204Rewrite aarch64 exclusive loops in the guest's memory when no overlay can carry them- resolution
691ba9ab86f8: Train 2: resolve the legacy form's keyless fields between #4769 and #4795
- resolution
- #4801 head
8b0d61def929->fc8d096aa773Test aarch64's in-memory exclusive-loop rewrite end to end- resolution
e88e520be187: Train 2: resolve the Reverie pin of #4801's new manifest lines
- resolution
- #4879 head
f2a8c2a60ae8->87568cc35c3fRewrite Rust std's flag-setting and retry-elsewhere exclusive loops - #4884 head
2229b988b797->fbc2f2dad48fName the store-exclusive retries behind a --verify divergence on aarch64- resolution
112e9813069f: Train 2: resolve the legacy form's keyless fields between #4795 and #4884
- resolution
- #4907 head
706c57a76659->df0a61bdaccfSay how much of a run the store-exclusive counts cover, and which files the overlay rewrite left- resolution
86d98021bb47: Train 2: resolve the legacy form's keyless fields between #4884 and #4907
- resolution
- #4909 head
cb3898b7711e->1f2f432f13deTell aarch64 code from data before counting or rewriting exclusive loops- resolution
fd5194995d14: Train 2: resolve global RPC revision 21 between #main and #4909 - resolution
fc7216bd68cf: Train 2: resolve the shared aarch64 test image between #4801 and #4909 - resolution
7d2f89a14a44: Train 2: regenerate ci/dag/validate.json from the merged validation DAG - pin
649c1b56f50c: Train 2: pin Reverie to the train's Reverie branch at a6f6508ab (Reveriea09bc2932->a6f6508ab)
- resolution
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1089 files)- heads: every pull request at its live GitHub head (7 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 13 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3407 tests run: 3407 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1497 tests run: 1472 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 94 passed, 2 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_scheduler_strategies_strict_verify: host flake (c2 649c1b56f, 2026-11-01): --verify's two runs read different fstat bytes for /etc/ld.so.cache (syscall #265, same fd and size), so the host file changed between the runs; Hermit does not make a changing filesystem deterministic. Passed at c1 3a720d6d2 and at the previous c2. The host rewrites /etc/ld.so.cache often (its mtime read 07:47:22 UTC during the check at 07:47:43). Rerun alone at c2 649c1b56f: 3/3 PASS (36.3s, 36.2s, 39.0s).
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 28: 27 in the named baseline, 1 NEW; 0 baseline tests passed here
- NEW lit_scheduler_strategies_strict_verify: host flake (c2 649c1b56f, 2026-11-01): --verify's two runs read different fstat bytes for /etc/ld.so.cache (syscall #265, same fd and size), so the host file changed between the runs; Hermit does not make a changing filesystem deterministic. Passed at c1 3a720d6d2 and at the previous c2. The host rewrites /etc/ld.so.cache often (its mtime read 07:47:22 UTC during the check at 07:47:43). Rerun alone at c2 649c1b56f: 3/3 PASS (36.3s, 36.2s, 39.0s).
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): 217 passed; 0 failed- Reverie
cargo clippy --workspace --all-targets -- -D warnings: fails, pre-existing (main): Reverie main 9443a6b28 failscargo clippy --workspace --all-targets -- -D warningsthe same way (reverie-liteinst unused imports in its strace and native_unpublished test targets; reverie-dbt's lib test) (reverie-ptrace unit tests not reached) - integration tests named in the PRs' Validation sections: 4 pass here; all 4 also pass on the bare-metal Intel host
Review: complete (every resolution commit over the threshold approved by both seats: 34488052e 443 lines).
Hermit, on 649c1b56f50c:
- #4742 head
0697c4cec85c->27887a1c1e81Run a binder call that waits for another process on the background path, so the guest keeps running - #4751 head
ee7879de230c->bb8c85d0a62cStore where each backgrounded call rejoined in the preemption record, and replay at those turns - #4847 head
2965eccc055b->9c88ef83326fBegin a backgrounded call where its recording did in a schedule replay- resolution
34488052e55f: Train 3: put #4847's background starts at record format 5, above #4845's offsets at 4
- resolution
- #4761 head
fcf4c4f8d0ee->45d5096d8968Under --strict, refuse binder in a fresh run and name the replay route- resolution
20df651025ca: Train 3: resolve the legacy form's keyless fields between #4907 and #4761
- resolution
- #4878 head
8ac46d55d8da->368004075e3cName where in the record every summarized schedule-replay desync lies- resolution
e0d3385a4fcd: Train 3: count train 3's format-ladder units in the detcore pins
- resolution
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1089 files)- heads: every pull request at its live GitHub head (5 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 13 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3462 tests run: 3462 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1501 tests run: 1476 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 95 passed, 1 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 27: 27 in the named baseline, 0 NEW; 0 baseline tests passed here
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): see train 2 (Reverie unchanged since)- integration tests named in the PRs' Validation sections: 6 pass here; 1 STRICT
- preadv2_and_pwritev2_at_the_current_offset_wait_as_readv_and_writev_do: strict here; bare-metal Intel host: PASS (9.2s)
Review: complete (every resolution commit over the threshold approved by both seats: ddbc0ed25 79 lines, 2e9d8c466 68 lines).
Hermit, on e0d3385a4fcd:
- #4685 head
3dff8865a75a->d1c34f7450c7Print a partial run summary when --timeout stops the run- resolution
ddbc0ed25fe2: Train 6: name train 3's unconsumed checkpoints and untaken starts only for a run that finished (#4685) - resolution
b058ae5b09c9: Train 6: give #4685's run-timeout test #4845's offset argument
- resolution
- #4750 head
1e80485a90ca->94093e7c8af7Name a replay's standard descriptors whose kind differs from its recording's - #4759 head
0200b8d0452b->7c3c119210bcLet a schedule replay keep the long slices of a preemption replay's record - #4766 head
b8e86b110721->ec14b3338cceWarn instead of refusing a non-strict run with a skid overshoot- resolution
0b5a5679d64e: Train 6: resolve report_rcb_overshoot's call in #4769's kept timer after #4766
- resolution
- #4779 head
379c7c42610d->8f6badb707e2Report the aarch64 virtual-counter reads an image can make- resolution
2e98558e0528: Train 6: resolve global RPC revision 17 between #4769 and #4779 (no new revision in the train)
- resolution
- #4780 head
00c878d75fb0->ff56239855daRecord each segment's failed store-exclusives as a diagnosis aid- resolution
2e9d8c4667ca: Train 6: give SchedEvent #4780's store-exclusive count beside #4845's instruction offset - resolution
22fa40c18c6f: Train 6: point #4780's RPC-digest test at the composed SchedEvent Serialize
- resolution
- #4802 head
9478b9ba9b06->22fa40c18c6fLet a thread switched away from at a replayed prehook carry out its call first- resolution
aa06a69039ba: Train 6: resolve global RPC revision 21 between #main and #4802
- resolution
- #4867 head
7a98d683a232->1ea5448e3e20Raise the slice bound after a guest crash, behind --post-crash-timeslice- resolution
747eb70276c0: Train 6: resolve the legacy form's keyless fields between #4761 and #4867 - resolution
aedc31b1b1fc: Train 6: resolve global RPC revision 21 between #main and #4867 - resolution
f28085135a53: Train 6: resolve the slice bound between #4759 and #4867 (post-crash bound inside max_slice_length)
- resolution
- #4889 head
f0a89ea5deb1->31a30322e3bbFix-forward for #4632 and #4653: interpolation keeps the preemption-charge cap - #4902 head
cd1b0d698b6c->ddec8d13f1ddRe-land #4597's preemption-replay half: a recorded check-in slice gets a bound, not an exact stop- resolution
1f5bff9e9ac1: Train 6: resolve global RPC revision 23 between #4902 and #4902
- resolution
- #4926 head
8c398864bb72->b2fa1b6ee3b5Detcore: bound chaos past the end of a replayed schedule as without one - #4739 head
2b76d7f60476->db65119c3b97Detcore records synchronization edges in the access trace - #4796 head
0733aed05c15->f111fa19d716Detcore: report accesses to chosen guest bytes with --watch- resolution
0852fe4c1d17: Train 6: resolve the legacy form's keyless fields between #4867 and #4796 - resolution
5175920873fd: Train 6: resolve global RPC revision 21 between #4902 and #4796
- resolution
- #4934 head
8072280e0c83->23b79cc3037dRe-land first-pass sleep registration (#4682) with its fixes, after the train-12 revert- resolution
6dad1144655a: Train 6: resolve the legacy form's keyless fields between #4796 and #4934 - resolution
57d69b520504: Train 6: resolve analyze's record-stamping docs between #4795, #4867 and #4934
- resolution
- #4654 head
28de69e9ef6f->26c8aaeba6bfSpread chaos timed waits with seeded wake times, under --chaos-timed-wait-spread- resolution
931e6451ac34: Train 6: resolve the legacy form's keyless fields between #4934 and #4654
- resolution
- #4777 head
b7e62b80a889->093511de28f0Classify the options a schedule replay applies past its schedule - #4938 head
e83ed19c2f10->919a6feff78bInterrupt a nanosleep at a timer's due time and report the time left from there (#4931)- resolution
049c243873d7: Train 6: resolve global RPC revision 21 between #4902 and #4938 - resolution
0b96efdd74d0: Train 6: bring this train's tests to the merged APIs - resolution
67e448a2247c: Train 6: set the detcore pins to the tests train 6 lists - resolution
9b816ffb6a8c: Train 6: rustfmt what this train's resolutions left unformatted
- resolution
- skipped as an identical copy: #4779 commit
e379b8da6986= train commit9a38f87269e2 - skipped as an identical copy: #4802 commit
9478b9ba9b06= train commitc78a0a63b607
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1098 files)- heads: every pull request at its live GitHub head (17 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 16 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
- this train's rustfmt commit
9b816ffb6a8c: layout only byfmtproof.py(each file it changes equals its parent once whitespace and rustfmt's trailing commas before a closing bracket are removed) ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3580 tests run: 3580 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1537 tests run: 1512 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 95 passed, 1 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 27: 27 in the named baseline, 0 NEW; 0 baseline tests passed here
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): see train 2 (Reverie unchanged since)- integration tests named in the PRs' Validation sections: 14 pass here; 14 STRICT, 4 FAIL, 1 TIMEOUT
- a_blocking_fifo_open_beside_a_pipeline_waits_for_its_writer: strict here; bare-metal Intel host: PASS (24.4s)
- a_new_thread_past_a_replayed_schedule_gets_its_first_turn_within_a_second: strict here; bare-metal Intel host: PASS (11.7s)
- a_pipe_writev_whose_iovec_array_is_rewritten_keeps_both_signals: strict here; bare-metal Intel host: PASS (7.3s)
- a_schedule_replay_charges_expired_waits_as_its_recording_did: strict here; bare-metal Intel host: PASS (14.9s)
- a_schedule_replay_keeps_the_long_slices_of_a_preemption_replay: strict here; bare-metal Intel host: PASS (3.4s)
- a_signal_after_a_sleeps_deadline_does_not_interrupt_it: strict here; bare-metal Intel host: PASS (1.7s)
- a_timer_due_before_a_sleeps_deadline_interrupts_it_with_the_time_left: strict here; bare-metal Intel host: PASS (2.6s)
- an_ignored_or_blocked_sigchld_does_not_end_a_sleep: strict here; bare-metal Intel host: PASS (0.6s)
- partial_and_timer_woken_pipe_calls_end_as_linux_does: strict here; bare-metal Intel host: PASS (7.4s)
- pipe_calls_held_at_entry_and_woken_by_signals_end_as_linux_does: strict here; bare-metal Intel host: PASS (14.7s)
- pipe_calls_woken_by_signals_end_as_linux_does: strict here; bare-metal Intel host: PASS (13.7s)
- poll_timeout_returns_on_time_while_another_thread_spins: strict here; bare-metal Intel host: PASS (5.6s)
- run_ptrace_nonleader_exec_displaces_runnable_leader: strict here; bare-metal Intel host: PASS (9.5s)
- skid_overshoot_and_guest_failure_have_different_exit_codes: strict here; bare-metal Intel host: PASS (1.6s)
- a_schedule_replay_names_a_stdio_kind_changed_since_the_recording: fail here (host-limited: fails the same way at #4750's own head on this AMD VM; PASS on the Intel host); bare-metal Intel host: PASS (0.6s)
- run_kvm_exec_deletes_posix_timers_and_preserves_itimer: fail here (host-limited on both hosts: AMD VM: exit 122, the --strict refusal at PMU validation (Reverie's counter check reports SpecLockMap), also with /test created on the host; Intel host (Xeon Gold 6138, kernel 6.16.1): exit 125 before the guest starts, 'HERMIT_INTERNAL_FAILURE class=cli-error / Error: --mount target /test does not exist on this host. Hermit mounts onto an existing path outside /tmp: create it first, or choose a target under /tmp' (the test passes --mount=type=tmpfs,target=/test); strict validation passes there (rrnewton/hermit#5042)); bare-metal Intel host: FAIL, host-limited: exit 125, '--mount target /test does not exist on this host' (cli-error, before the guest starts; rrnewton/hermit#5042)
- run_kvm_itimer_real_interrupts_sleep_in_all_eight_modes: fail here (host-limited on both hosts: AMD VM: exit 122, the --strict refusal at PMU validation (Reverie's counter check reports SpecLockMap), also with /test created on the host; Intel host (Xeon Gold 6138, kernel 6.16.1): exit 125 before the guest starts, 'HERMIT_INTERNAL_FAILURE class=cli-error / Error: --mount target /test does not exist on this host. Hermit mounts onto an existing path outside /tmp: create it first, or choose a target under /tmp' (the test passes --mount=type=tmpfs,target=/test); strict validation passes there (rrnewton/hermit#5042)); bare-metal Intel host: FAIL, host-limited: exit 125, '--mount target /test does not exist on this host' (cli-error, before the guest starts; rrnewton/hermit#5042)
- run_ptrace_exec_deletes_posix_timers_and_preserves_itimer: fail here (host-limited on both hosts: AMD VM: exit 122, the --strict refusal at PMU validation (Reverie's counter check reports SpecLockMap), also with /test created on the host; Intel host (Xeon Gold 6138, kernel 6.16.1): exit 125 before the guest starts, 'HERMIT_INTERNAL_FAILURE class=cli-error / Error: --mount target /test does not exist on this host. Hermit mounts onto an existing path outside /tmp: create it first, or choose a target under /tmp' (the test passes --mount=type=tmpfs,target=/test); strict validation passes there (rrnewton/hermit#5042); #4938's landing condition: a host where --strict passes the counter check and /test exists); bare-metal Intel host: FAIL, host-limited: exit 125, '--mount target /test does not exist on this host' (cli-error, before the guest starts; rrnewton/hermit#5042)
- run_chaos_preemption_replay_reuses_the_recorded_epoch: timeout here; bare-metal Intel host: PASS (1.8s)
Review: complete (no resolution commit over 50 non-pin lines).
Hermit, on 9b816ffb6a8c:
- #4664 head
501914b9646c->7fea689014e0Detcore: choose the port of an implicit bind deterministically- resolution
e735c46b7c27: Train 7: resolve global RPC revision 21 between #4902 and #4664 - resolution
03063cb80660: Train 7: sort #4664's port_allocator module beside #4867's post_crash
- resolution
- #4764 head
b98c55b14f6f->79543bc4ec56Add --untrap-passthrough-syscalls, an opt-in that leaves seven pass-through syscalls untrapped- resolution
42756bfa0087: Train 7: resolve the legacy form's keyless fields between #4654 and #4764
- resolution
- #4791 head
8bf3aae99596->4817627b21e1Freeze the Android system property area for the guest at the start of a run- resolution
285fd8d734f9: Train 7: resolve the legacy form's keyless fields between #4764 and #4791
- resolution
- #4885 head
63d73959cfee->79c01b5659beFix-forward for #4620: CPU-clock sleeps, resolutions and timer tasks as Linux answers them- resolution
0de711f9253d: Train 7: resolve global RPC revision 20 between #4867 and #4885
- resolution
- #4933 head
345ae0cf2ff6->3053680d1328Test the MSG_ERRQUEUE decision through Detcore's descriptor model
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1102 files)- heads: every pull request at its live GitHub head (5 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 16 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3612 tests run: 3612 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1554 tests run: 1529 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 95 passed, 1 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 27: 27 in the named baseline, 0 NEW; 0 baseline tests passed here
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): see train 2 (Reverie unchanged since)- integration tests named in the PRs' Validation sections: 1 pass here; 7 STRICT, 1 FAIL
- cpu_time_clocks_read_the_logical_cpu_accounting: strict here; bare-metal Intel host: PASS (2.4s)
- implicit_binds_take_the_same_ports_on_every_run: strict here; bare-metal Intel host: PASS (1.6s)
- msg_dontwait_returns_at_once_on_a_blocking_socket: strict here; bare-metal Intel host: PASS (4.1s)
- msg_errqueue_returns_at_once_on_inet_sockets_and_waits_on_unix_sockets: strict here; bare-metal Intel host: PASS (2.5s)
- posix_timer_signal_rows_are_delivered_as_on_linux_at_bitwise_parity: strict here; bare-metal Intel host: PASS (34.2s)
- systemd_sysusers_reads_its_configuration_as_natively: strict here; bare-metal Intel host: PASS (2.7s)
- the_pipe_wake_hand_off_verifies_on_fifos_under_chaos_and_a_nonzero_latency: strict here; bare-metal Intel host: PASS (2.8s)
- inherited_container_output_does_not_expose_capture_offset: fail here (pre-existing (main), host-limited: fails identically at main cd9e333e8 on this AMD VM, 3/3 in wt-tmp on 2026-11-01 (panic at hermit-cli/tests/cli.rs:14220, 'failed to read guest seek report: NotFound'): the test makes a --strict run, which this VM refuses (PMU validation), and reads the guest's report before checking the exit status. PASS 4/4 on the Intel host at c7 b764fec45. In baseline-cd9e333e8.txt.); bare-metal Intel host: PASS (0.3s)
Review: complete (every resolution commit over the threshold approved by both seats: e2656e1c6 55 lines, f60a0a923 68 lines, cad19c461 105 lines, 453f0dfa3 222 lines).
Hermit, on 3053680d1328:
- #4608 head
3cb9d9c433c2->cf04a4439ea1analyze: continue prefix trials coarser when the scheduler alone meets the target - #4609 head
42be1232d3cc->23346eba1a4eanalyze: explain timing decisions and missing stacks; print only missed criteria - #4610 head
a646cb47225f->40c2d9d81e07analyze: let --minimize replay the record that met the target - #4640 head
15e25f6719c6->76f70c2fb15eanalyze: run --run1-preemptions as the target run instead of panicking - #4641 head
41c6c16c5631->e005a1cbc38banalyze: compare --target-exit-code with the code hermit run exits with - #4671 head
99c8417edc94->d13f97808f5canalyze: replay each bisection trial with the callback checkpoints its unchanged prefix reaches - #4706 head
7f7e644af715->0079e8113678analyze: remove its workspace on exit unless --keep-tmp - #4714 head
75c767a3bb26->bff40fdc8a5canalyze: discard a bisection trial's schedules once its outcome is read - #4729 head
4a7231a7e5b9->ad92cdafd1b8analyze: name the conflicting accesses whose order flips- resolution
e1ae52030ab6: Train 8: resolve the race finder's record spans between #4796 and #4729
- resolution
- #4741 head
1d31ad2acfe8->4cba3c055d21analyze: report the racing accesses at the deciding event - #4857 head
918a2f8be3c7->9e8f705bacd5analyze: watch the racing bytes when the syscall finder finds none - #4743 head
c0b0fc737d9a->759361f73ecaanalyze: let --trial-log, not --verbose, set the trials' log level- resolution
a1151097a80d: Train 8: resolve #4743's trial-log change against #4640, #4714 and #4671
- resolution
- #4745 head
d8e5fa3cb340->874c9abc20d3analyze: take each report stack from two threads where the replays part - #4752 head
174924dd9f8c->bf722460cb0danalyze: report its conclusions, not an internal failure- resolution
94083f72fb6a: Train 8: resolve analyze's phase-5 call between #4671 and #4752
- resolution
- #4746 head
534805b0a584->bd8142bb0be5analyze: stop at a budget with a partial report, and resume - #4772 head
49435ee1dcd5->a0bb205954a9Let analyze and bisect run --no-namespace trials with chosen guest IDs- resolution
e1e8e18f60fc: Train 8: keep #4845's adoption of the recordings' instruction offsets beside #4772's trial guest IDs
- resolution
- #4873 head
2e23a5db188c->1635e875f7cbReplay analyze and bisect trials under one guest random seed- resolution
e2656e1c6745: Train 8: expect #4934's sleep registration in #4873's seeded trial arguments
- resolution
- #4732 head
01ca3d8e36bb->20f523d54f92Replay a recording's scheduler seed too, check an explicit --seed against it, and say which seeds were adopted- resolution
04b0d2b269f4: Train 8: resolve the legacy form's keyless fields between #4791 and #4732 - resolution
2c04e48e8848: Train 8: resolve #4732's analyze options and target seed against #4714, #4743 and #4752
- resolution
- #4920 head
544621e09837->1cbf502a9078analyze: take a prefix trial's stacks at the deciding event's schedule position- resolution
975e435bb194: Train 8: resolve the legacy form's keyless fields between #4732 and #4920 - resolution
f60a0a923eba: Train 8: bring this train's analyze code and tests to the merged APIs - resolution
7f9725de1adc: Train 8: bring this train's tests to the merged APIs
- resolution
- #4792 head
64a566a94ade->73591902a8b4analyze: rerun a trial its wall-clock bound stopped, never count it - #4835 head
c0461e9752f5->34f29db0313fanalyze: splice only runs whose threads agree, keep stack-trace stops out of the decision, and never count a refused trial- resolution
cad19c461f8f: Train 8: resolve #4792 and #4835 against the analyze line and #4845 - resolution
453f0dfa30b9: Train 8: write the search's interval files with its endpoints' source fields - resolution
b2daead69c87: Train 8: rustfmt what this train's resolutions left unformatted
- resolution
- skipped as an identical copy: #4741 commit
df8ef98ad992= train commit8e5b52b15238 - skipped as an identical copy: #4741 commit
c4c8974fd42e= train commit73668de89550 - skipped as an identical copy: #4741 commit
5a8b0c393987= train commita7a45b13d02f - skipped as an identical copy: #4741 commit
856ade84ad7a= train commitefe56c3b48b7 - skipped as an identical copy: #4741 commit
57ccfbd1b41a= train commited3ac43bedab - skipped as an identical copy: #4741 commit
5f2802fae06c= train commit1fb09e24333a - skipped as an identical copy: #4741 commit
eb0fb76d1be4= train commitdb65119c3b97 - skipped as an identical copy: #4857 commit
73960a85083c= train commitc3b63a169e88 - skipped as a carried copy: #4857 commit
d1b0465bcfd5is its copy of #4796's commit of the same subject; the train carries #4796's own (2d5f7e3243a8) - skipped as a carried copy: #4857 commit
0bdd7539a407is its copy of #4796's commit of the same subject; the train carries #4796's own (5bf7637a784e) - skipped as a carried copy: #4857 commit
918a2f8be3c7is its copy of #4796's commit of the same subject; the train carries #4796's own (f111fa19d716)
Gates on the AMD EPYC VM (ptrace backend, default log level, no relaxations; this host's PMU check refuses --strict):
cargo fmt --all -- --check: clean (1112 files)- heads: every pull request at its live GitHub head (21 pull requests, 0 stale)
- pincheck (
cargo nextest listover each counted node's exact selection against its pin): passed, pins: 16 nodes checked, 0 mismatches, 7 base-caused (the base's own stale pins) - main's stale pins: 7, base-caused (the base lists that many more than it pins, and the train adds nothing to them): test.cli, test.cli_on_host, test.detcore_unit, test.detcore_unit_on_host, test.hermit_unit, test.hermit_unit_on_host, test.record_replay
- this train's rustfmt commit
b2daead69c87: layout only byfmtproof.py(each file it changes equals its parent once whitespace and rustfmt's trailing commas before a closing bracket are removed) ci/sync-cell-config.sh --check: currentcargo clippy --workspace --all-targets -- -D warnings: cleancargo nextest run -p hermit-detcore --lib: 3622 tests run: 3622 passed, 0 skipped; RPC digest testthe_global_rpc_revision_matches_its_definitions: PASScargo nextest run -p detcore-model -p hermit-run --lib --bins: 1770 tests run: 1745 passed, 25 failed, 1 skipped- analyze::rundata::tests::strict_trials_refuse_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trial_preemption_keeps_the_explicit_maximum_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- analyze::rundata::tests::trials_without_strict_warn_once_of_an_inexact_branch_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::a_legacy_positional_array_reads_as_the_object_it_lists: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::backend_config_json_preserves_every_backend_and_representable_bytes: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- config::tests::legacy_backend_json_round_trips_every_backend_capabilities_constant: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::an_annotated_priority_history_replays_only_with_precise_rcb_timers: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_active_maximum_is_refused_without_normalizing_the_request: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- preemption_admission::tests::explicit_timer_controls_still_refuse_after_disabling_the_maximum: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_copy_failure_with_trace_diagnostics: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_live_copy_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_import_failure_retires_initialized_sibling_and_timer: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- ptrace_completion::tests::real_random_readv_live_import_preserves_sibling_and_timer_success: pre-existing: fails at main cd9e333e8 on this host (known-real-random-stack; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_run_draw_picks_the_maximum_and_a_replay_takes_the_recorded_one: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::a_small_max_timeslice_gets_a_notice: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::only_instrumented_ptrace_family_runs_depend_on_host_perf: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::chaos_seeded_timeslice_needs_a_pmu_timer: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::preemption_tests::explicit_maximum_is_refused_even_when_equal_to_the_parser_default: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::skid_margin_override_rejects_non_ptrace_backed_backends: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- run::strict_refusal_needs_strict_a_pmu_backend_and_an_inexact_counter: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_capabilities_match_the_golden_table: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::backend_timer_delivery_is_explicit: pre-existing: fails at main cd9e333e8 on this host (reverie-9443a6b2-capabilities; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::detcore_drives_kvm_guest_for_synthetic_syscall: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- tests::kvm_runs_dynamic_echo_through_detcore: pre-existing: fails at main cd9e333e8 on this host (known-kvm-guest-clock; rrnewton/hermit#5012, fixed on main by 189f1ae1a)
- lit suite (
cargo build -p hermit-lit-guests --bins,cargo nextest run -p hermit-run --test lit): 97 tests run: 95 passed, 1 failed, 1 timed out, 2 skipped- lit_scheduler_strategies_chaos_verify: pre-existing (main): times out at 57 s at main cd9e333e8 on this host too; in main's own lit run (baseline.sh, 2026-11-01)
- lit_timerfd_virtual_time_hermit_run_strict: pre-existing (main): fails identically at main cd9e333e8 on this host (strict refused by this host's PMU check); in main's own lit run (baseline.sh, 2026-11-01)
- failing tests by name against main cd9e333e8's own runs of these three steps: failing 27: 27 in the named baseline, 0 NEW; 0 baseline tests passed here
- code the train removes from its base that no pull request removes (dropcheck): 0 unexplained drops
cargo test -p reverie-liteinst-artifact(source catalog): see train 2 (Reverie unchanged since)- integration tests named in the PRs' Validation sections: 5 pass here; 3 FAIL, 5 STRICT
- dbt_random_sources_are_deterministic_under_strict_verify: fail here (pre-existing (main), host-limited: main's own test; fails identically at main cd9e333e8 on this host, 3/3 on 2026-11-01 (random_determinism.rs:94, 'random guest did not reach L2 under strict verification: exit status: 125', 'HERMIT_INTERNAL_FAILURE class=backend-unavailable backend=dbt'): this source build does not enable the dbt feature); bare-metal Intel host: FAIL, host-limited (build): backend
dbtis unavailable, thedbtfeature is not enabled in this source build (as at main) - no_namespace_bisect_replays_the_schedules_it_writes: fail here (#4772's own test, with #4772's recorded landing condition: it needs Linux >= 7.1, which main's clone exit-signal probe checks (rrnewton/hermit#5005). On this AMD VM the probe refuses (HERMIT_POLICY_REFUSAL: 'legacy clone exit-signal validation is unsupported or unproven: SIGCHLD probe returned EFAULT (14), signal 65 probe returned EFAULT (14)'); the Intel host's probe refuses the same way (SIGCHLD and signal 65 probes returned EFAULT (14); expected EFAULT then EINVAL)); bare-metal Intel host: FAIL, refused by the clone exit-signal probe (SIGCHLD and signal 65 probes returned EFAULT; #4772's Linux >= 7.1 condition, rrnewton/hermit#5005)
- no_namespace_minimize_replays_its_candidate_records: fail here (#4772's own test, with #4772's recorded landing condition: it needs Linux >= 7.1, which main's clone exit-signal probe checks (rrnewton/hermit#5005). On this AMD VM the probe refuses (HERMIT_POLICY_REFUSAL: 'legacy clone exit-signal validation is unsupported or unproven: SIGCHLD probe returned EFAULT (14), signal 65 probe returned EFAULT (14)'); the Intel host's probe refuses the same way (SIGCHLD and signal 65 probes returned EFAULT (14); expected EFAULT then EINVAL)); bare-metal Intel host: FAIL, refused by the same clone exit-signal probe (rrnewton/hermit#5005)
- a_bounded_chaos_schedule_replays_as_recorded: strict here; bare-metal Intel host: PASS (7.9s)
- a_no_namespace_run_shows_its_working_mount_and_hides_another: strict here; bare-metal Intel host: PASS (3.4s)
- a_replay_stuck_off_its_schedule_lets_every_thread_run: strict here; bare-metal Intel host: PASS (0.7s)
- a_replay_stuck_off_its_schedule_stops_under_replay_exhausted_panic: strict here; bare-metal Intel host: PASS (0.9s)
- no_namespace_runs_render_the_base_mount_table: strict here; bare-metal Intel host: PASS (6.9s)
- dbt_random_sources_are_deterministic_under_strict_verify: fail here (pre-existing (main), host-limited: main's own test; fails identically at main cd9e333e8 on this host, 3/3 on 2026-11-01 (random_determinism.rs:94, 'random guest did not reach L2 under strict verification: exit status: 125', 'HERMIT_INTERNAL_FAILURE class=backend-unavailable backend=dbt'): this source build does not enable the dbt feature); bare-metal Intel host: FAIL, host-limited (build): backend
Trains 1, 2, 3, 6, 7, 8 in that order, each on the previous train's tip. The Reverie branches of trains 1 and 2 land first, then Hermit's pin moves to the landed Reverie SHAs. Main has moved its Reverie pin twice since the trains were built (9443a6b28257 to bca539918 in c67101103, then to 1c22faddc in 4f409f883), so trains 1 and 2's Reverie heads do not descend from it. For a landing on current main the pull requests now carry restacked heads (pushed 2026-11-01): reverie#1153 e1b54ae6eb90 and reverie#1137 52449e346e3b on Reverie main 1c22faddc (both merge cleanly into Reverie main 19c014c65), and Hermit chain A on main d192e5d72, re-pinned to e1b54ae6e: #4769 1d74a108c3e9, #4845 bcbc98a5d8eb, #4902 46c4b72bdf8d and #4920 82e2c2fbedde. The trains carry these pull requests' earlier heads (#4769 522920468a70, #4845 3a720d6d23ca, #4902 cd1b0d698b6c in train 6, #4920 544621e09837 in train 8). On a main past 4f409f883, #4769's pin commit conflicts with main's CARRY TO 1c22faddc block: keep main's, and #4769's becomes "from 1c22faddc" with only #1153's two commits. Trains 3 to 8 change no Reverie code. Rebuild only if the lander asks.
Empty in this generation: train 6 builds directly on train 3's tip.
Deleted 2026-11-01 from VladimirMakaev/hermit, older-generation branches built on main 9ab8418de603 (superseded):
train22/3-binderat1ed5fa69e23dbf99c9eaac210981dda43ea33728(the new train 3 above reuses the name)train22/4-record-formatatecd114306d4ffabe28adde8a19d0b8438541cba1train22/5-poll-carriersatd1b114cacf8206d719a174de06e33f55fcafe088