[INFO] cloning repository https://github.com/jonmest/jotun
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jonmest/jotun" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonmest%2Fjotun", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonmest%2Fjotun'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0b971a7360e21b46db7e78ac684db205360c479a
[INFO] testing jonmest/jotun against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonmest%2Fjotun" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/jonmest/jotun
[INFO] finished tweaking git repo https://github.com/jonmest/jotun
[INFO] tweaked toml for git repo https://github.com/jonmest/jotun written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jonmest/jotun on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jonmest/jotun already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356
[INFO] running `Command { std: "docker" "start" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling rand v0.10.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling prost-types v0.14.3
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]    Compiling yggr-core v0.1.0 (/opt/rustwide/workdir/yggr-core)
[INFO] [stderr]    Compiling yggr-sim v0.1.0 (/opt/rustwide/workdir/yggr-sim)
[INFO] [stderr]    Compiling yggr v0.2.0 (/opt/rustwide/workdir/yggr)
[INFO] [stderr]    Compiling yggr-examples v0.1.0 (/opt/rustwide/workdir/yggr-examples)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.95s
[INFO] running `Command { std: "docker" "inspect" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling cargo-husky v1.5.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling generator v0.8.8
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling yggr-core v0.1.0 (/opt/rustwide/workdir/yggr-core)
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling yggr-sim v0.1.0 (/opt/rustwide/workdir/yggr-sim)
[INFO] [stderr]    Compiling yggr v0.2.0 (/opt/rustwide/workdir/yggr)
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling loom v0.7.2
[INFO] [stderr]    Compiling yggr-examples v0.1.0 (/opt/rustwide/workdir/yggr-examples)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yggr-82b47058458cdd68)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test storage::disk::tests::parse_rejects_non_segment_names ... ok
[INFO] [stderr]      Running tests/disk_storage.rs (/opt/rustwide/target/debug/deps/disk_storage-8179b0d9df6c1713)
[INFO] [stdout] test storage::disk::tests::segment_filename_round_trip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test recover_ignores_torn_tail_frame ... ok
[INFO] [stdout] test append_log_empty_is_noop ... ok
[INFO] [stdout] test malformed_snapshot_meta_too_short_rejected ... ok
[INFO] [stdout] test hard_state_with_no_vote_round_trips ... ok
[INFO] [stdout] test fresh_recovery_returns_default_empty ... ok
[INFO] [stdout] test open_leaves_real_files_untouched ... ok
[INFO] [stdout] test rescan_creates_missing_log_dir ... ok
[INFO] [stdout] test open_removes_root_tmp_files_from_prior_crash ... ok
[INFO] [stdout] test disk_storage_error_display_and_source ... ok
[INFO] [stdout] test rescan_ignores_and_cleans_stray_tmp_files ... ok
[INFO] [stdout] test hard_state_round_trips ... ok
[INFO] [stdout] test log_append_and_recover ... ok
[INFO] [stdout] test malformed_snapshot_meta_size_mismatch_rejected ... ok
[INFO] [stdout] test truncate_on_empty_storage_is_a_noop ... ok
[INFO] [stdout] test malformed_hard_state_wrong_size_rejected ... ok
[INFO] [stdout] test append_log_overwrite_drops_stale_tail ... ok
[INFO] [stdout] test log_truncate_drops_tail ... ok
[INFO] [stdout] test snapshot_with_peers_round_trips ... ok
[INFO] [stdout] test segmented_log_rolls_over_to_new_files ... ok
[INFO] [stdout] test snapshot_covers_only_segment_leaves_empty_tail ... ok
[INFO] [stdout] test appends_after_snapshot_use_correct_indices ... ok
[INFO] [stdout] test snapshot_straddle_rewrites_to_new_start_index ... ok
[INFO] [stdout] test snapshot_replaces_log_prefix ... ok
[INFO] [stdout] test truncate_tolerates_externally_deleted_segments ... ok
[INFO] [stdout] test snapshot_tolerates_externally_deleted_segment_files ... ok
[INFO] [stdout] test snapshot_drops_whole_segment_files ... ok
[INFO] [stdout] test truncate_drops_whole_segment_files ... ok
[INFO] [stderr]      Running tests/loom_task_registry.rs (/opt/rustwide/target/debug/deps/loom_task_registry-ef60098972a6e1a6)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test reader_task_registry_handles_register_drain_race_without_loss_or_duplication ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/multi_node.rs (/opt/rustwide/target/debug/deps/multi_node-f943a7a53e119d12)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test three_nodes_elect_a_leader_and_replicate_one_proposal ... ok
[INFO] [stdout] test follower_redirects_propose_to_leader ... ok
[INFO] [stdout] test cluster_survives_full_restart_from_disk ... ok
[INFO] [stderr]      Running tests/node.rs (/opt/rustwide/target/debug/deps/node-0c3dcc8101e88221)
[INFO] [stdout] test cluster_continues_after_leader_crash ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test restart_preserves_voted_for ... ok
[INFO] [stdout] test metrics_after_shutdown_return_error ... ok
[INFO] [stdout] test single_node_node_starts_and_shuts_down ... ok
[INFO] [stdout] test shutdown_releases_transport_listener_immediately ... ok
[INFO] [stdout] test read_linearizable_on_follower_returns_not_leader ... ok
[INFO] [stdout] test shutdown_handle_after_first_use_returns_shutdown_error ... ok
[INFO] [stdout] test decode_failure_on_apply_fails_waiter_with_fatal ... ok
[INFO] [stdout] test single_node_read_linearizable_observes_applied_state ... ok
[INFO] [stdout] test metrics_track_election_and_apply ... ok
[INFO] [stdout] test single_node_self_elects_and_applies_proposal ... ok
[INFO] [stdout] test batched_concurrent_proposals_all_commit_in_order ... ok
[INFO] [stderr]      Running tests/node_surface.rs (/opt/rustwide/target/debug/deps/node_surface-689e7bd0f120c623)
[INFO] [stdout] test slow_apply_does_not_stall_driver_status ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 42 tests
[INFO] [stdout] test admin_handle_forwards_membership_and_transfer_operations ... ok
[INFO] [stdout] test bootstrap_join_starts_with_empty_peers ... ok
[INFO] [stdout] test bootstrap_recover_prefers_persisted_peers_when_snapshot_exists ... ok
[INFO] [stdout] test config_error_display_covers_every_variant ... ok
[INFO] [stdout] test config_validate_rejects_heartbeat_not_less_than_election_min ... ok
[INFO] [stdout] test config_validate_rejects_invalid_election_timeout_range ... ok
[INFO] [stdout] test config_validate_rejects_lease_that_overruns_election_slack ... ok
[INFO] [stdout] test config_validate_rejects_self_in_peers ... ok
[INFO] [stdout] test config_validate_rejects_zero_snapshot_chunk_size ... ok
[INFO] [stdout] test bootstrap_recover_falls_back_to_config_peers_without_persisted_membership ... ok
[INFO] [stdout] test node_start_returns_config_error_for_invalid_config ... ok
[INFO] [stdout] test node_start_surfaces_recover_failure_from_storage ... ok
[INFO] [stdout] test node_metrics_followers_empty_on_non_leader ... ok
[INFO] [stdout] test bootstrap_new_cluster_uses_config_peers_authoritatively ... ok
[INFO] [stdout] test propose_error_display_covers_every_variant ... ok
[INFO] [stdout] test node_start_error_display_and_source_delegate_to_cause ... ok
[INFO] [stdout] test read_error_display_covers_every_variant ... ok
[INFO] [stdout] test add_peer_on_leaderless_follower_returns_no_leader_or_not_leader ... ok
[INFO] [stdout] test admin_add_learner_returns_receipt_with_new_membership ... ok
[INFO] [stdout] test admin_add_learner_commits_on_single_node_leader ... ok
[INFO] [stdout] test admin_membership_errors_discriminate_alreadys_and_unknowns ... ok
[INFO] [stdout] test append_log_failure_fails_proposal_with_fatal ... ok
[INFO] [stdout] test transfer_leadership_error_display_covers_every_variant ... ok
[INFO] [stdout] test transfer_leadership_from_follower_without_leader_returns_no_leader ... ok
[INFO] [stdout] test node_metrics_expose_per_peer_follower_progress_on_leader ... ok
[INFO] [stdout] test node_metrics_wrap_raw_engine_metrics_with_runtime_context ... ok
[INFO] [stdout] test admin_trigger_snapshot_forces_a_snapshot_past_the_threshold ... ok
[INFO] [stdout] test current_leader_matches_status_hint ... ok
[INFO] [stdout] test persist_hard_state_failure_shuts_down_the_runtime ... ok
[INFO] [stdout] test runtime_auto_snapshots_on_hint_by_default ... ok
[INFO] [stdout] test snapshot_hints_can_be_disabled_via_config ... ok
[INFO] [stdout] test post_shutdown_api_calls_return_shutdown_errors ... ok
[INFO] [stdout] test add_peer_on_leader_appends_config_change ... ok
[INFO] [stdout] test persist_snapshot_failure_kills_the_node_after_snapshot_hint ... ok
[INFO] [stdout] test config_change_returns_busy_when_pending_limit_is_reached ... ok
[INFO] [stdout] test status_health_reports_running ... ok
[INFO] [stdout] test transfer_leadership_accepts_known_peer_on_leader ... ok
[INFO] [stdout] test status_reports_boot_leader_and_post_propose_state ... ok
[INFO] [stdout] test transfer_leadership_to_unknown_peer_returns_invalid_target ... ok
[INFO] [stdout] test transfer_leadership_to_self_returns_invalid_target ... ok
[INFO] [stdout] test propose_returns_busy_when_pending_limit_is_reached ... ok
[INFO] [stdout] test write_alias_matches_propose_semantics ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/nonblocking_snapshot.rs (/opt/rustwide/target/debug/deps/nonblocking_snapshot-b5e881aa171fae8a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test overlapping_snapshot_hints_do_not_stack ... ok
[INFO] [stdout] test status_remains_responsive_during_slow_snapshot ... ok
[INFO] [stdout] test status_responsive_under_varied_snapshot_delays ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 21.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/runtime_chaos.rs (/opt/rustwide/target/debug/deps/runtime_chaos-d248d0e7800845b0)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test partition_heal_cluster_recovers_and_commits ... ok
[INFO] [stdout] test happy_cluster_elects_leader_and_commits ... ok
[INFO] [stdout] test lossy_cluster_still_commits ... ok
[INFO] [stdout] test chaos_seeds_preserve_safety ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 25.82s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tcp_transport.rs (/opt/rustwide/target/debug/deps/tcp_transport-a5e47e5cefa05d03)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test debug_impl_prints_node_id ... ok
[INFO] [stdout] test drop_aborts_tasks_without_shutdown ... ok
[INFO] [stdout] test malformed_body_fails_decode_and_drops_connection ... ok
[INFO] [stdout] test malformed_prefix_oversize_drops_connection ... ok
[INFO] [stdout] test malformed_prefix_zero_sender_drops_connection ... ok
[INFO] [stdout] test client_disconnect_before_full_prefix_is_clean ... ok
[INFO] [stdout] test self_id_in_peer_map_is_silently_ignored ... ok
[INFO] [stdout] test tcp_transport_error_display_covers_all_variants ... ok
[INFO] [stdout] test shutdown_aborts_owned_tasks ... ok
[INFO] [stdout] test send_to_unknown_peer_returns_error ... ok
[INFO] [stdout] test vote_request_round_trips_over_tcp ... ok
[INFO] [stdout] test many_messages_arrive_in_order ... ok
[INFO] [stdout] test vote_response_round_trips_over_tcp ... ok
[INFO] [stdout] test peer_restart_on_same_port_is_survived_by_reconnect ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/traits.rs (/opt/rustwide/target/debug/deps/traits-c67d35e4d5d45ffd)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test default_snapshot_for_custom_impl_is_empty ... ok
[INFO] [stdout] test impls_are_send_static ... ok
[INFO] [stdout] test state_machine_command_round_trips_through_encode_decode ... ok
[INFO] [stdout] test state_machine_decode_error_is_propagated ... ok
[INFO] [stdout] test state_machine_apply_returns_previous_value_for_set ... ok
[INFO] [stdout] test default_snapshot_returns_empty_bytes ... ok
[INFO] [stdout] test decode_error_new_and_display ... ok
[INFO] [stdout] test transport_default_shutdown_is_a_noop ... ok
[INFO] [stdout] test memory_storage_round_trips_log_with_snapshot_floor ... ok
[INFO] [stdout] test memory_storage_round_trips_hard_state ... ok
[INFO] [stdout] test memory_storage_append_log_overwrite_drops_stale_tail ... ok
[INFO] [stdout] test default_restore_panics_with_documented_message - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yggr_core-32e9abb70c6462b1)
[INFO] [stdout] 
[INFO] [stdout] running 344 tests
[INFO] [stdout] test engine::env::tests::randomized_env_covers_full_range ... ok
[INFO] [stdout] test engine::env::tests::randomized_env_stays_within_range ... ok
[INFO] [stdout] test engine::env::tests::randomized_env_is_not_constant ... ok
[INFO] [stdout] test engine::env::tests::randomized_env_uses_seed ... ok
[INFO] [stdout] test engine::env::tests::randomized_env_zero_seed_does_not_lock ... ok
[INFO] [stdout] test engine::log::tests::truncate_from_at_first_index_drops_everything ... ok
[INFO] [stdout] test engine::log::tests::fresh_log_is_empty ... ok
[INFO] [stdout] test engine::log::tests::log_is_empty_tracks_in_memory_entries_only ... ok
[INFO] [stdout] test engine::log::tests::log_with_entries_is_not_empty ... ok
[INFO] [stdout] test engine::log::tests::truncate_from_below_snapshot_floor_is_noop ... ok
[INFO] [stdout] test engine::log::tests::truncate_from_drops_entries_at_and_after_index ... ok
[INFO] [stdout] test engine::log::tests::truncate_from_just_above_snapshot_floor_drops_everything ... ok
[INFO] [stdout] test engine::log::tests::truncate_from_past_tail_is_noop ... ok
[INFO] [stdout] test engine::peer_progress::tests::ensure_next_at_least_ignores_unknown_peer ... ok
[INFO] [stdout] test engine::peer_progress::tests::ensure_next_at_least_is_noop_when_above_floor ... ok
[INFO] [stdout] test engine::peer_progress::tests::ensure_next_at_least_is_noop_when_already_at_floor ... ok
[INFO] [stdout] test engine::peer_progress::tests::ensure_next_at_least_raises_when_below_floor ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_pins_lower_middle_not_upper ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_five_node_cluster ... ok
[INFO] [stdout] test engine::peer_progress::tests::new_sets_match_index_to_zero ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_in_even_cluster_takes_lower_middle ... ok
[INFO] [stdout] test engine::env::tests::randomized_env_is_deterministic_for_seed ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_with_no_peers_returns_leader_last ... ok
[INFO] [stdout] test engine::peer_progress::tests::new_sets_next_index_to_leader_last_plus_one ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_without_replication_is_zero ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_three_node_cluster ... ok
[INFO] [stdout] test engine::peer_progress::tests::new_with_empty_log_starts_next_at_one ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_conflict_sets_next_to_hint ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_success_advances_next_index_past_match ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_success_ignores_stale_responses ... ok
[INFO] [stdout] test engine::peer_progress::tests::new_with_no_peers_is_empty ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_conflict_does_not_touch_match_index ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_success_ignores_unknown_peer ... ok
[INFO] [stdout] test engine::tests::append_entries_request::accepts_from_empty_log_when_prev_log_is_none ... ok
[INFO] [stdout] test engine::tests::append_entries_request::candidate_step_down_in_same_term_preserves_self_vote ... ok
[INFO] [stdout] test engine::tests::append_entries_request::candidate_steps_down_when_current_term_leader_appears ... ok
[INFO] [stdout] test engine::tests::append_entries_request::conflict_hint_for_longer_divergent_follower_does_not_exceed_prev_index ... ok
[INFO] [stdout] test engine::tests::append_entries_request::conflict_hint_for_short_follower_uses_our_last_plus_one ... ok
[INFO] [stdout] test engine::tests::append_entries_request::empty_entries_with_matching_prev_succeeds ... ok
[INFO] [stdout] test engine::tests::append_entries_request::follower_does_not_re_apply_already_applied_entries ... ok
[INFO] [stdout] test engine::tests::append_entries_request::follower_emits_apply_when_leader_commit_advances_its_commit_index ... ok
[INFO] [stdout] test engine::tests::append_entries_request::follower_emits_no_apply_when_leader_commit_does_not_advance ... ok
[INFO] [stdout] test engine::tests::append_entries_request::higher_term_triggers_catch_up_before_deciding ... ok
[INFO] [stdout] test engine::tests::append_entries_request::idempotent_when_entries_already_present ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_conflict_never_goes_below_one ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_success_is_idempotent ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_success_advances_match_index ... ok
[INFO] [stdout] test engine::peer_progress::tests::stale_record_success_does_not_rewind_next_index_after_conflict ... ok
[INFO] [stdout] test engine::peer_progress::tests::record_conflict_ignores_unknown_peer ... ok
[INFO] [stdout] test engine::tests::append_entries_request::missing_prev_log_entry_is_rejected ... ok
[INFO] [stdout] test engine::tests::append_entries_request::stale_term_append_entries_does_not_reset_the_election_timer ... ok
[INFO] [stdout] test engine::tests::append_entries_request::append_entries_with_prev_log_mismatch_still_resets_timer ... ok
[INFO] [stdout] test engine::tests::append_entries_request::stale_term_is_rejected_without_state_change ... ok
[INFO] [stdout] test engine::tests::append_entries_request::appends_new_entries_after_matching_prev ... ok
[INFO] [stdout] test engine::tests::append_entries_request::leader_commit_advances_commit_index ... ok
[INFO] [stdout] test engine::tests::append_entries_request::successful_append_entries_resets_the_election_timer ... ok
[INFO] [stdout] test engine::tests::append_entries_request::truncates_and_replaces_on_conflicting_entry ... ok
[INFO] [stdout] test engine::tests::append_entries_request::mismatched_prev_log_term_is_rejected ... ok
[INFO] [stdout] test engine::tests::append_entries_request::leader_commit_is_capped_at_last_log_index ... ok
[INFO] [stdout] test engine::tests::append_entries_response::conflict_hint_past_leader_log_is_clamped ... ok
[INFO] [stdout] test engine::tests::append_entries_response::conflict_does_not_advance_commit_or_emit_apply ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_never_exceeds_leader_last ... ok
[INFO] [stdout] test engine::log::tests::install_snapshot_then_append_is_well_formed ... ok
[INFO] [stdout] test engine::tests::append_entries_response::conflict_with_hint_one_yields_prev_log_id_none ... ok
[INFO] [stdout] test engine::tests::append_entries_response::conflict_rewinds_next_index_and_retargets_only_the_responding_peer ... ok
[INFO] [stdout] test engine::tests::append_entries_response::current_term_entry_commits_on_majority_but_noop_is_not_in_apply ... ok
[INFO] [stdout] test engine::tests::append_entries_response::duplicate_success_at_same_index_does_not_re_apply ... ok
[INFO] [stdout] test engine::tests::append_entries_response::prior_term_entry_does_not_commit_via_majority_alone_until_current_term_entry_does ... ok
[INFO] [stdout] test engine::tests::append_entries_response::higher_term_response_demotes_leader_to_follower ... ok
[INFO] [stdout] test engine::tests::append_entries_response::no_majority_yet_no_commit_no_apply ... ok
[INFO] [stdout] test engine::tests::append_entries_response::response_to_non_leader_is_ignored ... ok
[INFO] [stdout] test engine::tests::append_entries_response::stale_success_does_not_rewind_match_index ... ok
[INFO] [stdout] test engine::tests::append_entries_response::stale_term_response_is_ignored ... ok
[INFO] [stdout] test engine::log::tests::truncate_then_append_reestablishes_contiguous_log ... ok
[INFO] [stdout] test engine::peer_progress::tests::match_index_monotonic_under_success_conflict_interleavings ... ok
[INFO] [stdout] test engine::tests::append_entries_response::success_with_no_entries_treats_last_appended_as_zero ... ok
[INFO] [stdout] test engine::tests::broadcast::become_leader_appends_a_noop_at_current_term ... ok
[INFO] [stdout] test engine::tests::broadcast::append_entries_carries_current_commit_index ... ok
[INFO] [stdout] test engine::tests::broadcast::behind_peer_receives_unsent_entries_starting_at_next ... ok
[INFO] [stdout] test engine::tests::broadcast::far_behind_peer_with_next_at_one_receives_all_entries ... ok
[INFO] [stdout] test engine::tests::broadcast::empty_pre_election_log_yields_prev_at_the_become_leader_noop ... ok
[INFO] [stdout] test engine::tests::broadcast::non_leader_emits_no_append_entries ... ok
[INFO] [stdout] test engine::tests::append_entries_response::success_with_last_appended_past_leader_log_is_ignored ... ok
[INFO] [stdout] test engine::tests::broadcast::leader_broadcasts_on_each_heartbeat_interval_tick ... ok
[INFO] [stdout] test engine::tests::broadcast::rewinding_peer_next_index_replays_missing_entries ... ok
[INFO] [stdout] test engine::tests::client_proposal::candidate_drops_proposal_silently ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_stable_under_peer_order_permutation ... ok
[INFO] [stdout] test engine::tests::broadcast::fresh_leader_emits_one_append_entries_per_peer ... ok
[INFO] [stdout] test engine::tests::append_entries_response::success_advances_match_and_next_for_the_responding_peer ... ok
[INFO] [stdout] test engine::tests::client_proposal::batch_appends_all_commands_in_one_persist ... ok
[INFO] [stdout] test engine::peer_progress::tests::majority_index_matches_classical_definition ... ok
[INFO] [stdout] test engine::tests::client_proposal::first_proposal_on_empty_log_lands_at_index_one ... ok
[INFO] [stdout] test engine::tests::client_proposal::follower_without_known_leader_drops_silently ... ok
[INFO] [stdout] test engine::tests::client_proposal::follower_with_known_leader_emits_redirect ... ok
[INFO] [stdout] test engine::tests::client_proposal::higher_term_append_entries_resets_known_leader_and_then_records_new_one ... ok
[INFO] [stdout] test engine::tests::client_proposal::leader_appends_command_at_next_index_and_current_term ... ok
[INFO] [stdout] test engine::tests::client_proposal::leader_broadcasts_immediately_after_appending ... ok
[INFO] [stdout] test engine::tests::client_proposal::leader_proposal_carries_command_to_peers ... ok
[INFO] [stdout] test engine::tests::client_proposal::prev_log_mismatch_still_records_leader_for_the_term ... ok
[INFO] [stdout] test engine::tests::client_proposal::stale_term_append_entries_does_not_update_known_leader ... ok
[INFO] [stdout] test engine::tests::client_proposal::stepping_down_to_follower_clears_known_leader ... ok
[INFO] [stdout] test engine::tests::config_change::candidate_drops_config_change_proposal ... ok
[INFO] [stdout] test engine::tests::config_change::follower_applying_a_config_change_entry_mutates_active_config ... ok
[INFO] [stdout] test engine::tests::config_change::follower_with_known_leader_redirects_config_change_proposal ... ok
[INFO] [stdout] test engine::tests::client_proposal::empty_batch_is_noop ... ok
[INFO] [stdout] test engine::tests::config_change::add_peer_immediately_replicates_to_the_new_peer ... ok
[INFO] [stdout] test engine::tests::config_change::follower_without_known_leader_drops_config_change_proposal ... ok
[INFO] [stdout] test engine::tests::config_change::leader_appends_remove_peer_and_drops_it_from_active_config ... ok
[INFO] [stdout] test engine::tests::config_change::leader_accepts_second_config_change_after_first_commits ... ok
[INFO] [stdout] test engine::tests::config_change::leader_appends_add_peer_at_current_term_and_mutates_active_config ... ok
[INFO] [stdout] test engine::tests::append_entries_request::identical_request_is_idempotent ... ok
[INFO] [stdout] test engine::tests::config_change::leader_persists_config_change_entry_before_broadcast ... ok
[INFO] [stdout] test engine::tests::config_change::leader_refuses_add_of_existing_member ... ok
[INFO] [stdout] test engine::tests::append_entries_request::response_term_is_always_responders_current_term ... ok
[INFO] [stdout] test engine::tests::config_change::leader_refuses_remove_of_non_member ... ok
[INFO] [stdout] test engine::tests::config_change::leader_refuses_add_of_self ... ok
[INFO] [stdout] test engine::tests::config_change::leader_steps_down_when_committing_its_own_removal ... ok
[INFO] [stdout] test engine::tests::config_change::leader_refuses_second_config_change_while_first_is_uncommitted ... ok
[INFO] [stdout] test engine::tests::config_change::remove_peer_stops_replicating_to_the_removed_peer ... ok
[INFO] [stdout] test engine::tests::config_change::removing_a_non_leader_peer_does_not_step_down_the_leader ... ok
[INFO] [stdout] test engine::tests::config_change::truncating_a_config_change_entry_reverts_active_config ... ok
[INFO] [stdout] test engine::tests::broadcast::append_entries_carries_current_term_and_leader_id ... ok
[INFO] [stdout] test engine::tests::client_proposal::follower_with_known_leader_redirects_batch ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::follower_starts_election_immediately_on_timeout_now_from_current_leader ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::follower_with_known_leader_redirects_transfer_request ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::leader_catches_target_up_before_sending_timeout_now ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::leader_sends_timeout_now_immediately_when_target_is_caught_up ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::same_term_timeout_now_from_unknown_leader_is_ignored ... ok
[INFO] [stdout] test engine::tests::learner::add_learner_emits_persist_config_entry ... ok
[INFO] [stdout] test engine::tests::learner::add_learner_puts_node_in_learner_set_immediately_on_leader ... ok
[INFO] [stdout] test engine::tests::learner::broadcast_includes_learners ... ok
[INFO] [stdout] test engine::tests::learner::learner_ack_does_not_advance_commit ... ok
[INFO] [stdout] test engine::tests::leadership_transfer::removing_transfer_target_cancels_inflight_transfer ... ok
[INFO] [stdout] test engine::peer_progress::tests::match_index_is_monotonically_non_decreasing ... ok
[INFO] [stdout] test engine::tests::append_entries_request::committed_entries_are_never_truncated ... ok
[INFO] [stdout] test engine::tests::learner::learner_does_not_start_an_election_on_timer_expiry ... ok
[INFO] [stdout] test engine::tests::learner::learner_rejects_vote_requests ... ok
[INFO] [stdout] test engine::tests::learner::promote_learner_moves_node_from_learner_to_voter ... ok
[INFO] [stdout] test engine::tests::learner::promote_unknown_learner_is_a_noop ... ok
[INFO] [stdout] test engine::tests::lease::fresh_leader_without_any_majority_ack_falls_back_to_readindex ... ok
[INFO] [stdout] test engine::tests::lease::leader_whose_last_ack_exceeds_lease_falls_back_to_readindex ... ok
[INFO] [stdout] test engine::tests::learner::remove_peer_also_removes_learners ... ok
[INFO] [stdout] test engine::tests::lease::freshly_elected_leader_without_committed_current_term_entry_fails_notready ... ok
[INFO] [stdout] test engine::tests::lease::lease_metric_increments_reads_completed_per_read ... ok
[INFO] [stdout] test engine::tests::lease::lease_duration_zero_disables_lease ... ok
[INFO] [stdout] test engine::tests::lease::leader_with_fresh_majority_ack_serves_read_via_lease ... ok
[INFO] [stdout] test engine::tests::lease::lease_expiry_across_ticks ... ok
[INFO] [stdout] test engine::tests::membership::append_entries_request_body_leader_id_must_match_from ... ok
[INFO] [stdout] test engine::tests::lease::stepdown_still_fails_pending_reads ... ok
[INFO] [stdout] test engine::tests::membership::append_entries_request_from_non_member_is_dropped ... ok
[INFO] [stdout] test engine::tests::membership::append_entries_response_from_non_member_does_not_update_progress ... ok
[INFO] [stdout] test engine::tests::membership::vote_request_body_candidate_id_must_match_from ... ok
[INFO] [stdout] test engine::tests::membership::vote_request_from_non_member_is_dropped ... ok
[INFO] [stdout] test engine::tests::membership::vote_response_from_non_member_does_not_count_toward_majority ... ok
[INFO] [stdout] test engine::tests::metrics::accepted_ae_with_entries_bumps_entries_appended ... ok
[INFO] [stdout] test engine::tests::metrics::commit_advance_bumps_entries_committed_and_applied ... ok
[INFO] [stdout] test engine::tests::metrics::denying_a_pre_vote_bumps_pre_votes_denied ... ok
[INFO] [stdout] test engine::tests::metrics::denying_a_vote_bumps_votes_denied ... ok
[INFO] [stdout] test engine::tests::lease::new_leader_resets_lease_tick ... ok
[INFO] [stdout] test engine::tests::metrics::expired_election_timer_bumps_elections_started ... ok
[INFO] [stdout] test engine::tests::metrics::fresh_engine_gauges_reflect_follower_at_term_zero ... ok
[INFO] [stdout] test engine::tests::metrics::fresh_engine_reports_zero_counters ... ok
[INFO] [stdout] test engine::tests::metrics::gauges_track_current_term_and_commit_after_events ... ok
[INFO] [stdout] test engine::tests::metrics::granting_a_pre_vote_bumps_pre_votes_granted ... ok
[INFO] [stdout] test engine::tests::metrics::rejected_append_entries_bumps_append_entries_rejected ... ok
[INFO] [stdout] test engine::tests::metrics::receiving_an_append_entries_bumps_append_entries_received ... ok
[INFO] [stdout] test engine::tests::metrics::granting_a_vote_bumps_votes_granted ... ok
[INFO] [stdout] test engine::tests::metrics::proposing_read_as_non_leader_bumps_reads_failed ... ok
[INFO] [stdout] test engine::tests::metrics::winning_election_bumps_leader_elections_won ... ok
[INFO] [stdout] test engine::tests::persistence::client_proposal_on_follower_emits_no_persist_log_entries ... ok
[INFO] [stdout] test engine::tests::persistence::become_leader_emits_persist_log_entries_for_the_noop ... ok
[INFO] [stdout] test engine::tests::metrics::seeing_a_higher_term_bumps_higher_term_stepdowns ... ok
[INFO] [stdout] test engine::tests::persistence::client_proposal_on_leader_emits_persist_before_broadcast ... ok
[INFO] [stdout] test engine::tests::persistence::follower_emits_no_persist_log_entries_when_nothing_new_appended ... ok
[INFO] [stdout] test engine::tests::persistence::follower_emits_persist_log_entries_for_appended_entries ... ok
[INFO] [stdout] test engine::tests::persistence::granting_a_vote_emits_persist_hard_state_before_response ... ok
[INFO] [stdout] test engine::tests::persistence::higher_term_append_entries_response_emits_persist ... ok
[INFO] [stdout] test engine::tests::persistence::election_start_emits_persist_for_self_vote_and_term_bump ... ok
[INFO] [stdout] test engine::tests::persistence::rejecting_a_vote_at_same_term_emits_no_persist ... ok
[INFO] [stdout] test engine::tests::pre_vote::follower_grants_pre_vote_when_no_recent_leader ... ok
[INFO] [stdout] test engine::tests::persistence::vote_request_at_higher_term_emits_persist_even_when_rejected ... ok
[INFO] [stdout] test engine::tests::pre_vote::follower_pre_vote_response_does_not_update_term ... ok
[INFO] [stdout] test engine::tests::pre_vote::follower_rejects_pre_vote_when_leader_heard_from_recently ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_candidate_state_proposed_term_is_readable ... ok
[INFO] [stdout] test engine::tests::pre_vote::expired_timer_sends_pre_vote_not_vote_request_when_enabled ... ok
[INFO] [stdout] test engine::tests::pre_vote::follower_rejects_pre_vote_for_stale_log ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_at_exactly_timeout_is_granted_leader_no_longer_recent ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_disabled_preserves_legacy_behavior ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_interrupted_by_current_term_append_entries ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_majority_promotes_to_candidate_and_sends_vote_request ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_rejected_when_proposed_term_equals_current_term ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_rejection_keeps_us_in_pre_candidate ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_request_uses_term_plus_one_but_engine_term_stays ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_response_after_stepping_down_is_ignored ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_higher_term_response_steps_down_to_follower ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_at_timeout_minus_one_is_rejected_leader_still_recent ... ok
[INFO] [stdout] test engine::tests::read_index::follower_without_known_leader_fails_notready ... ok
[INFO] [stdout] test engine::tests::read_index::leader_emits_ready_after_majority_heartbeat_quorum ... ok
[INFO] [stdout] test engine::tests::read_index::follower_with_known_leader_redirects_read_request ... ok
[INFO] [stdout] test engine::tests::read_index::single_node_leader_serves_read_immediately ... ok
[INFO] [stdout] test engine::tests::invariants::recover_from_round_trips_hard_state ... ok
[INFO] [stdout] test engine::tests::read_index::leader_without_committed_current_term_entry_fails_notready ... ok
[INFO] [stdout] test engine::tests::snapshot::entries_from_below_floor_returns_empty_slice ... ok
[INFO] [stdout] test engine::tests::snapshot::follower_install_snapshot_below_existing_floor_is_a_noop ... ok
[INFO] [stdout] test engine::tests::snapshot::follower_buffers_chunked_snapshot_until_final_chunk ... ok
[INFO] [stdout] test engine::tests::pre_vote::pre_vote_response_carries_responder_term_not_proposed_term ... ok
[INFO] [stdout] test engine::tests::read_index::stepdown_fails_pending_reads ... ok
[INFO] [stdout] test engine::tests::snapshot::follower_install_snapshot_keeps_consistent_log_tail ... ok
[INFO] [stdout] test engine::tests::snapshot::follower_reports_resume_offset_for_out_of_order_snapshot_chunk ... ok
[INFO] [stdout] test engine::tests::snapshot::higher_term_install_snapshot_response_demotes_leader ... ok
[INFO] [stdout] test engine::tests::snapshot::install_snapshot_with_lower_term_is_rejected_with_our_term ... ok
[INFO] [stdout] test engine::tests::snapshot::leader_keeps_sending_append_entries_when_peer_is_above_floor ... ok
[INFO] [stdout] test engine::tests::snapshot::leader_restarts_snapshot_transfer_when_floor_moves ... ok
[INFO] [stdout] test engine::tests::snapshot::leader_sends_install_snapshot_when_peer_next_index_is_below_floor ... ok
[INFO] [stdout] test engine::tests::snapshot::leader_streams_snapshot_one_chunk_per_broadcast_and_resumes_on_ack ... ok
[INFO] [stdout] test engine::tests::snapshot::install_snapshot_at_higher_term_demotes_candidate_then_accepts ... ok
[INFO] [stdout] test engine::tests::snapshot::install_snapshot_response_advances_match_index_to_snapshot_floor ... ok
[INFO] [stdout] test engine::tests::snapshot::max_log_entries_fires_once_per_crossing_and_rearms_after_snapshot ... ok
[INFO] [stdout] test engine::tests::snapshot::follower_install_snapshot_truncates_log_and_advances_commit ... ok
[INFO] [stdout] test engine::tests::snapshot::max_log_entries_emits_snapshot_hint_when_exceeded ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_advances_first_index ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_past_commit_index_is_refused ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_records_correct_term_for_floor ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_taken_truncates_log_up_to_index_and_emits_persist_snapshot ... ok
[INFO] [stdout] test engine::tests::snapshot::stale_snapshot_at_or_below_existing_floor_is_a_noop ... ok
[INFO] [stdout] test engine::tests::snapshot::term_at_floor_index_returns_snapshot_term ... ok
[INFO] [stdout] test engine::tests::tick::candidate_starts_new_election_when_its_own_election_times_out ... ok
[INFO] [stdout] test engine::tests::snapshot::max_log_entries_zero_disables_the_guardrail ... ok
[INFO] [stdout] test engine::tests::tick::follower_increments_election_elapsed_on_tick ... ok
[INFO] [stdout] test engine::tests::tick::follower_does_nothing_before_timeout ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_at_last_committed_index_clears_in_memory_log ... ok
[INFO] [stdout] test engine::tests::snapshot::snapshot_hint_fires_once_per_applied_threshold_band_and_rearms_after_snapshot ... ok
[INFO] [stdout] test engine::tests::tick::leader_increments_heartbeat_elapsed_on_tick ... ok
[INFO] [stdout] test engine::tests::tick::leader_resets_heartbeat_elapsed_after_interval ... ok
[INFO] [stdout] test engine::tests::tick::request_vote_carries_last_log_id_when_log_nonempty ... ok
[INFO] [stdout] test engine::tests::tick::starting_election_emits_request_vote_to_every_peer ... ok
[INFO] [stdout] test engine::tests::tick::starting_election_increments_term ... ok
[INFO] [stdout] test engine::tests::tick::starting_election_resets_election_timer ... ok
[INFO] [stdout] test engine::tests::tick::starting_election_transitions_to_candidate ... ok
[INFO] [stdout] test engine::tests::tick::starting_election_votes_for_self ... ok
[INFO] [stdout] test engine::tests::vote_request::advancing_to_a_higher_term_clears_the_prior_vote ... ok
[INFO] [stdout] test engine::tests::tick::leader_does_not_increment_election_elapsed ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_catches_up_to_a_higher_term_before_deciding ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_grants_again_when_the_same_candidate_re_requests ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_grants_when_candidate_log_at_same_term_is_at_least_as_long ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_grants_when_candidate_log_term_is_strictly_greater ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_rejects_a_second_candidate_after_voting_in_the_same_term ... ok
[INFO] [stdout] test engine::tests::metrics::same_term_stepdown_does_not_bump_higher_term_stepdowns ... ok
[INFO] [stdout] test engine::tests::tick::follower_starts_election_at_exactly_the_timeout ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_rejects_a_stale_term_without_changing_state ... ok
[INFO] [stdout] test engine::tests::tick::request_vote_carries_the_new_term_and_self_id ... ok
[INFO] [stdout] test engine::tests::vote_request::granting_a_vote_draws_a_new_timeout_from_env ... ok
[INFO] [stdout] test engine::tests::vote_request::follower_with_log_rejects_candidate_whose_log_is_behind ... ok
[INFO] [stdout] test engine::tests::vote_request::fresh_follower_grants_vote_for_a_valid_candidate ... ok
[INFO] [stdout] test engine::tests::vote_request::granting_a_vote_resets_the_election_timer ... ok
[INFO] [stdout] test engine::tests::vote_request::rejecting_a_vote_does_not_reset_the_election_timer ... ok
[INFO] [stdout] test engine::tests::client_proposal::non_leader_proposal_never_grows_log ... ok
[INFO] [stdout] test engine::tests::client_proposal::leader_log_grows_by_one_per_proposal ... ok
[INFO] [stdout] test engine::tests::vote_request::granted_implies_voted_for_equals_candidate ... ok
[INFO] [stdout] test engine::tests::vote_response::becoming_leader_initializes_peer_progress_correctly ... ok
[INFO] [stdout] test engine::tests::vote_request::response_term_is_always_responders_current_term ... ok
[INFO] [stdout] test engine::tests::vote_response::duplicate_grant_from_same_peer_is_idempotent ... ok
[INFO] [stdout] test engine::tests::vote_request::never_votes_for_two_different_candidates_in_the_same_term ... ok
[INFO] [stdout] test engine::tests::vote_request::identical_requests_are_idempotent ... ok
[INFO] [stdout] test engine::tests::vote_response::five_node_cluster_needs_two_grants_to_win ... ok
[INFO] [stdout] test engine::tests::vote_response::granted_response_records_voter ... ok
[INFO] [stdout] test engine::tests::vote_response::duplicate_grants_cannot_fake_a_majority ... ok
[INFO] [stdout] test engine::tests::vote_response::higher_term_response_steps_down_to_follower ... ok
[INFO] [stdout] test engine::tests::vote_response::late_response_after_becoming_follower_is_ignored ... ok
[INFO] [stdout] test engine::tests::vote_response::late_response_after_becoming_leader_is_ignored ... ok
[INFO] [stdout] test engine::tests::vote_response::rejected_response_does_not_count_toward_majority ... ok
[INFO] [stdout] test engine::tests::vote_response::response_arriving_at_a_fresh_follower_is_ignored ... ok
[INFO] [stdout] test engine::tests::vote_response::single_node_cluster_self_elects_on_first_tick ... ok
[INFO] [stdout] test engine::tests::vote_response::stale_term_response_is_ignored ... ok
[INFO] [stdout] test engine::tests::vote_response::three_node_cluster_needs_one_grant_to_win ... ok
[INFO] [stdout] test records::membership::tests::node_cannot_be_voter_and_learner ... ok
[INFO] [stdout] test records::membership::tests::voter_membership_starts_without_learners ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::append_entries_response_conflict_zero_hint_rejected ... ok
[INFO] [stdout] test engine::tests::invariants::recover_from_is_pure_idempotent ... ok
[INFO] [stdout] test engine::tests::vote_response::higher_term_response_always_demotes_candidate ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::append_entries_response_success_zero_last_appended_rejected ... ok
[INFO] [stdout] test engine::tests::vote_response::cluster_majority_is_strict_majority ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::config_change_add_peer_zero_id_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::config_change_missing_kind_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::config_change_remove_peer_zero_id_rejected ... ok
[INFO] [stdout] test engine::tests::vote_response::fewer_than_majority_grants_stays_candidate ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_config_change_payload_with_bad_inner_rejects ... ok
[INFO] [stdout] test engine::tests::vote_request::stale_term_is_always_rejected_without_state_change ... ok
[INFO] [stdout] test engine::tests::vote_response::exactly_majority_minus_one_distinct_grants_elects_leader ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::append_entries_response_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::append_entries_response_missing_result_rejected ... ok
[INFO] [stdout] test engine::tests::vote_request::current_term_is_monotonically_non_decreasing ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_zero_index_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_missing_payload_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::install_snapshot_response_missing_last_included_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::log_entry_missing_id_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::append_entries_response_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::install_snapshot_response_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::request_append_entries_bad_nested_entry_rejected ... ok
[INFO] [stdout] test engine::tests::invariants::vote_grant_is_term_unique ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::request_append_entries_zero_prev_log_index_rejected ... ok
[INFO] [stdout] test engine::tests::append_entries_response::no_log_index_is_applied_more_than_once ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::install_snapshot_response_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::request_append_entries_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::request_append_entries_zero_leader_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_with_populated_peers_roundtrips ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_zero_peer_id_rejected ... ok
[INFO] [stdout] test engine::tests::append_entries_response::commit_advances_only_to_current_term_entries ... ok
[INFO] [stdout] test transport::mapping::tests::append_entries::request_append_entries_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::message::message_missing_kind_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::message::convert_error_display_every_variant ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::install_snapshot_response_zero_last_included_index_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::message::log_id_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::message::message_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::pre_vote::pre_vote_response_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::pre_vote::request_pre_vote_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::pre_vote::request_pre_vote_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::pre_vote::pre_vote_response_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_missing_last_included_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::timeout_now::timeout_now_zero_leader_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::timeout_now::timeout_now_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::timeout_now::timeout_now_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::vote::request_vote_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::vote::request_vote_with_populated_last_log_id_roundtrips ... ok
[INFO] [stdout] test transport::mapping::tests::vote::request_vote_zero_last_log_index_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::pre_vote::request_pre_vote_zero_candidate_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_zero_leader_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::vote::request_vote_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::vote::request_vote_zero_candidate_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::vote::vote_response_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::vote::vote_response_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::install_snapshot::request_install_snapshot_zero_last_included_index_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::message::message_wire_roundtrip ... ok
[INFO] [stdout] test transport::mapping::tests::vote::vote_response_invalid_discriminant_rejected ... ok
[INFO] [stdout] test transport::mapping::tests::message::arbitrary_bytes_never_panic ... ok
[INFO] [stdout] test engine::tests::append_entries_response::commit_index_never_regresses ... ok
[INFO] [stdout] test engine::tests::append_entries_response::last_applied_never_exceeds_commit_index ... ok
[INFO] [stdout] test engine::tests::invariants::engine_invariants_hold_under_random_inputs ... ok
[INFO] [stdout] test engine::tests::invariants::log_matching_holds_on_single_engine ... ok
[INFO] [stdout] test engine::tests::invariants::commit_index_monotonic_across_arbitrary_incoming_rpcs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 344 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.36s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/kv.rs (/opt/rustwide/target/debug/deps/kv-d39a0ea97d832072)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/yggr_sim-c70cf786f5439c90)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test tests::invariants::disjoint_apply_is_silent ... ok
[INFO] [stdout] test tests::invariants::matching_applied_is_silent ... ok
[INFO] [stdout] test tests::invariants::divergent_apply_is_detected ... ok
[INFO] [stdout] test tests::invariants::log_matching_checks_post_snapshot_disagreement_above_snapshot_floor ... ok
[INFO] [stdout] test tests::chaos::crash_and_recover_preserves_liveness ... ok
[INFO] [stdout] test tests::smoke::different_seeds_can_diverge ... ok
[INFO] [stdout] test tests::chaos::chaos_smoke_fixed_seed ... ok
[INFO] [stdout] test tests::smoke::happy_path_three_nodes_elects_leader_and_applies_proposal ... ok
[INFO] [stdout] test tests::smoke::node_ids_are_one_indexed ... ok
[INFO] [stdout] test tests::invariants::happy_run_accumulates_committed_and_applied_without_violation ... ok
[INFO] [stdout] test tests::snapshot::crashed_node_catches_up_via_install_snapshot_after_recover ... ok
[INFO] [stdout] test tests::chaos::chaos_leader_missing_committed_repro ... ok
[INFO] [stdout] test tests::chaos::chaos_two_leaders_in_term_repro ... ok
[INFO] [stdout] test tests::membership::self_remove_steps_down_and_cluster_re_elects ... ok
[INFO] [stdout] test tests::snapshot::leader_takes_snapshot_keeps_safety ... ok
[INFO] [stdout] test tests::membership::add_then_remove_keeps_cluster_alive ... ok
[INFO] [stdout] test tests::smoke::same_seed_same_leader ... ok
[INFO] [stdout] test tests::proptests::three_node_happy_schedules_converge ... ok
[INFO] [stdout] test tests::proptests::three_node_happy_schedules_commit_on_majority ... ok
[INFO] [stdout] test tests::proptests::determinism_holds_under_random_seed ... ok
[INFO] [stdout] test tests::proptests::three_node_pre_vote_schedules_commit_on_majority ... ok
[INFO] [stdout] test tests::chaos::chaos_schedule_preserves_safety_with_pre_vote ... ok
[INFO] [stdout] test tests::chaos::chaos_schedule_preserves_safety ... ok
[INFO] [stdout] test tests::chaos::chaos_schedule_five_nodes_preserves_safety ... ok
[INFO] [stdout] test tests::chaos::chaos_schedule_five_nodes_preserves_safety_with_pre_vote ... ok
[INFO] [stderr]    Doc-tests yggr
[INFO] [stdout] test tests::chaos::chaos_schedule_seven_nodes_preserves_safety ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests yggr_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests yggr_sim
[INFO] [stdout] running 1 test
[INFO] [stdout] test yggr-core/src/lib.rs - (line 10) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.31s; merged doctests compilation took 0.30s
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356", kill_on_drop: false }`
[INFO] [stdout] deb246ce3be1ac8866475cb68d3ce07c137fe910b196b8c539dcfbd8b7832356
