[INFO] fetching crate etchdb 0.6.1...
[INFO] testing etchdb-0.6.1 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate etchdb 0.6.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate etchdb 0.6.1
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate etchdb 0.6.1
[INFO] tweaked toml for crates.io crate etchdb 0.6.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate etchdb 0.6.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate etchdb 0.6.1 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.100.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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947
[INFO] running `Command { std: "docker" "start" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", 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" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", 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" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling xxhash-rust v0.8.15
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rmp v0.8.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling etchdb-derive v0.6.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling rmp-serde v1.3.1
[INFO] [stderr]    Compiling etchdb v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 22.37s
[INFO] running `Command { std: "docker" "inspect" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", 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" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling etchdb v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 42s
[INFO] running `Command { std: "docker" "inspect" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", 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" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/etchdb/f87803628bc9689e/out/etchdb-f87803628bc9689e)
[INFO] [stdout] 
[INFO] [stdout] running 364 tests
[INFO] [stdout] test derive_generic_test::test_generic_etch_struct_second_instantiation ... ok
[INFO] [stdout] test derive_test::collection::collection_iter_excludes_deleted ... ok
[INFO] [stdout] test derive_test::collection::collection_delete_nonexistent_returns_false ... ok
[INFO] [stdout] test derive_generic_test::test_generic_etch_struct_writes_and_reads ... ok
[INFO] [stdout] test derive_test::collection::op_collection_delete ... ok
[INFO] [stdout] test derive_test::collection::collection_iter_merges_committed_and_overlay ... ok
[INFO] [stdout] test derive_test::collection::collection_with_hashmap_committed ... ok
[INFO] [stdout] test derive_test::collection::op_collection_put ... ok
[INFO] [stdout] test derive_test::collection::collection_into_parts_returns_ops_and_overlay ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_contains ... ok
[INFO] [stdout] test derive_test::collection::test_op_diagnostic_accessors ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_multi_collection_tx ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_delete ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_get_in_tx ... ok
[INFO] [stdout] test derive_test::crud::derive_iter_values ... ok
[INFO] [stdout] test derive_test::crud::derive_hashmap_write_read ... ok
[INFO] [stdout] test derive_test::crud::derive_mixed_collections ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_write_read ... ok
[INFO] [stdout] test derive_test::crud::derive_hashmap_delete ... ok
[INFO] [stdout] test derive_test::keys::derive_btree_u64_key_write_read ... ok
[INFO] [stdout] test derive_test::crud::derive_btree_wal_persistence ... ok
[INFO] [stdout] test derive_test::keys::derive_btree_u64_key_wal_persistence ... ok
[INFO] [stdout] test derive_test::keys::derive_hashmap_u32_key_write_read ... ok
[INFO] [stdout] test derive_test::migration::test_write_supersedes_quarantined_key ... ok
[INFO] [stdout] test derive_test::migration::test_migrate_wal_v1_to_v2 ... ok
[INFO] [stdout] test derive_test::migration::test_skip_v2_no_migration_skips_value ... ok
[INFO] [stdout] test derive_test::schema::derive_replayable_routes_by_collection_id ... ok
[INFO] [stdout] test derive_test::keys::derive_mixed_string_and_u64_keys ... ok
[INFO] [stdout] test derive_test::schema::derive_rollback_on_error ... ok
[INFO] [stdout] test derive_test::migration::test_chain_migrate_v1_to_v3 ... ok
[INFO] [stdout] test derive_test::migration::test_delete_removes_quarantined_entry ... ok
[INFO] [stdout] test error_test::already_exists_display ... ok
[INFO] [stdout] test error_test::error_is_send_and_sync ... ok
[INFO] [stdout] test error_test::invalid_display ... ok
[INFO] [stdout] test error_test::io_error_from_conversion ... ok
[INFO] [stdout] test error_test::not_found_accepts_string ... ok
[INFO] [stdout] test error_test::not_found_display ... ok
[INFO] [stdout] test derive_test::schema::derive_replayable_ignores_unknown_collection ... ok
[INFO] [stdout] test error_test::wal_corrupted_display ... ok
[INFO] [stdout] test derive_test::schema::test_postcard_old_bytes_fail_new_struct ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_enum_variant_add::existing_variants_still_load ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_enum_variant_reorder::reorder_does_not_silently_corrupt ... ok
[INFO] [stdout] test derive_test::keys::derive_mixed_keys_wal_persistence ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_field_reorder::reordered_fields_decode_correctly ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_field_add_optional::old_value_loads_with_new_field_defaulted ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_field_remove::removed_field_is_ignored_on_read ... ok
[INFO] [stdout] test migration_scenarios_test::auto::auto_field_rename_with_alias::alias_reads_old_field_name ... ok
[INFO] [stdout] test migration_scenarios_test::explicit::explicit_enum_variant_removal::removed_variant_with_no_migration_quarantines ... ok
[INFO] [stdout] test migration_scenarios_test::explicit::explicit_four_hop_chain::four_hop_chain_runs_all_hops ... ok
[INFO] [stdout] test migration_scenarios_test::explicit::explicit_rename_with_default_drops_data_silently::rename_with_default_loses_old_data_without_warning ... ok
[INFO] [stdout] test migration_scenarios_test::explicit::auto_enum_variant_rename_with_alias::renamed_variant_with_alias_reads_old_name ... ok
[INFO] [stdout] test migration_scenarios_test::failure::failure_chain_gap::gap_in_chain_quarantines_with_correct_hop ... ok
[INFO] [stdout] test migration_scenarios_test::failure::failure_future_version::future_version_is_quarantined ... ok
[INFO] [stdout] test migration_scenarios_test::failure::failure_migration_returns_error::migration_error_is_recorded_in_quarantine_reason ... ok
[INFO] [stdout] test migration_scenarios_test::explicit::explicit_rename_without_alias_quarantines::renamed_field_without_alias_goes_to_quarantine ... ok
[INFO] [stdout] test derive_test::schema::test_wal_skips_old_schema_entries ... ok
[INFO] [stdout] test derive_test::schema::test_snapshot_roundtrip_through_derive ... ok
[INFO] [stdout] test migration_scenarios_test::failure::failure_migration_panics::migration_panic_is_quarantined_not_crashed ... ok
[INFO] [stdout] test migration_scenarios_test::integration1::integration_empty_collection::empty_collection_snapshot_roundtrip ... ok
[INFO] [stdout] test migration_scenarios_test::integration1::integration_collection_isolation::migration_on_a_does_not_affect_b ... ok
[INFO] [stdout] test migration_scenarios_test::integration1::integration_legacy_postcard_wal::legacy_postcard_values_decode_without_envelope ... ok
[INFO] [stdout] test migration_scenarios_test::integration1::integration_mixed_wal::interleaved_versions_all_decode_correctly ... ok
[INFO] [stdout] test migration_scenarios_test::integration1::integration_unknown_collection_in_snapshot::unknown_collection_is_ignored ... ok
[INFO] [stdout] test derive_test::quarantine::test_compacted_v1_plus_no_wal_upgrade_to_v2 ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_auto_retry_persists_through_restart::auto_retry_persists_without_subsequent_snapshot ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::lock_file_contains_pid ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::different_dirs_are_independent ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::lock_file_created_in_dir ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::open_after_drop_succeeds ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_retry_quarantine_empty::retry_quarantine_returns_zero_when_empty ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_deep_chain::ten_hop_chain_accumulates_correctly ... ok
[INFO] [stdout] test migration_scenarios_test::integration2::integration_store_write_supersedes_quarantine::store_write_clears_matching_quarantine_entry ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_schema_fingerprint::fingerprint_changes_when_collection_added ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_schema_fingerprint::fingerprint_changes_when_version_bumped ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_schema_fingerprint::fingerprint_embedded_in_snapshot ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_schema_fingerprint::fingerprint_is_deterministic_and_nonzero ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_auto_retry_on_open::auto_retry_drains_quarantine_when_migrations_present ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_header_v4::fresh_wal_writes_version_4_header ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_header_v4::future_wal_version_rejected ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_header_v4::legacy_v3_wal_still_opens ... ok
[INFO] [stdout] test derive_test::quarantine::test_retry_quarantine_after_fix ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::crash_between_wal_rotate_and_snapshot_commit_recovers_via_wal_prev ... ok
[INFO] [stdout] test migration_scenarios_test::integration2::integration_store_roundtrip_with_migrations::store_roundtrip_with_migrations_on_both_collections ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::corrupted_wal_prev_is_skipped ... ok
[INFO] [stdout] test migration_scenarios_test::integration2::integration_quarantine_survives_compaction::quarantine_survives_multiple_compactions ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::corrupted_snapshot_recovers_via_wal_prev ... ok
[INFO] [stdout] test replay_report_test::test_fingerprint_differs_for_unbumped_type_change ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_schema_fingerprint::drift_detected_on_reopen_with_different_version ... ok
[INFO] [stdout] test replay_report_test::test_clean_open_reports_no_loss ... ok
[INFO] [stdout] test replay_report_test::test_old_pair_fingerprint_drifts_but_does_not_fail_strict ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::idempotent_wal_prev_replay_after_crash_between_compaction_and_boot ... ok
[INFO] [stdout] test replay_report_test::test_lenient_open_loads_and_reports_quarantine ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::wal_prev_created_on_compaction_survives_next_boot ... ok
[INFO] [stdout] test replay_report_test::test_report_snapshot_discarded_status ... ok
[INFO] [stdout] test replay_report_test::test_strict_aborts_on_discarded_snapshot ... ok
[INFO] [stdout] test replay_report_test::test_report_counts_key_decode ... ok
[INFO] [stdout] test replay_report_test::test_report_counts_unknown_collection ... ok
[INFO] [stdout] test replay_report_test::test_open_wal_with_report_returns_same_report ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::checkpoint_crash_child_worker ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_across_filesystems ... ignored, requires ETCHDB_QA_XDEV_DIR on a different filesystem than the temp dir; not portable across hosts/CI
[INFO] [stdout] test replay_report_test::test_strict_aborts_on_unknown_collection ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::error_message_includes_directory_path ... ok
[INFO] [stdout] test replay_report_test::test_strict_aborts_on_future_version_with_schema_mismatch ... ok
[INFO] [stdout] test replay_report_test::test_strict_aborts_on_quarantine_with_replay_loss ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_on_memory_store_is_unsupported ... ok
[INFO] [stdout] test migration_scenarios_test::integration3::integration_file_lock::second_open_on_same_dir_fails_with_database_locked ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_refuses_file_destination ... ok
[INFO] [stdout] test replay_report_test::test_reopen_with_changed_type_detects_drift_without_loss ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_refuses_nested_destination ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_refuses_dest_holding_a_store_file ... ok
[INFO] [stdout] test migration_scenarios_test::integration4::integration_wal_prev_safety_net::wal_prev_overwritten_across_compactions ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_creates_dest_with_source_permissions ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_of_never_written_store ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_copies_optional_files ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_skips_snapshot_when_wal_is_empty ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_with_quarantine_matches_source_inspect ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_concurrent_checkpoints_to_same_dest_exactly_one_succeeds ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_second_real_checkpoint_to_same_dest_is_refused ... ok
[INFO] [stdout] test store::store_test::basic::concurrent_reads ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_file_set ... ok
[INFO] [stdout] test store::store_test::basic::memory_store_read_write ... ok
[INFO] [stdout] test store::store_test::basic::write_rollback_on_error ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_checkpoint_under_write_load_keeps_every_committed_write ... ok
[INFO] [stdout] test store::store_test::concurrency::test_grouped_concurrent_writers_intermittent_flush_failure_loses_nothing ... ok
[INFO] [stdout] test store::store_test::basic::immediate_mode_auto_compacts_over_threshold ... ok
[INFO] [stdout] test store::store_test::enospc::test_grouped_flush_failure_surfaces_and_recovers ... ok
[INFO] [stdout] test store::store_test::enospc::test_immediate_write_surfaces_disk_full_and_reopen_recovers_prefix ... ok
[INFO] [stdout] test store::store_test::enospc::test_immediate_write_surfaces_sync_failure ... ok
[INFO] [stdout] test store::store_test::concurrency::test_reader_storm_sees_consistent_snapshots_no_deadlock ... ok
[INFO] [stdout] test store::store_test::flusher::flush_no_error_after_success ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_concurrent_checkpoints_to_different_dests_both_succeed ... ok
[INFO] [stdout] test store::store_test::flusher::flush_discovers_flusher_wal_error ... ok
[INFO] [stdout] test store::store_test::flusher::flusher_wal_save_ops_error_propagates ... ok
[INFO] [stdout] test store::store_test::flusher::flusher_wal_sync_error_propagates ... ok
[INFO] [stdout] test store::store_test::flusher::null_backend_load_via_with_backend ... ok
[INFO] [stdout] test store::store_test::flusher::flusher_wal_triggers_snapshot ... ok
[INFO] [stdout] test store::store_test::grouped::flush_forces_immediate_persist ... ok
[INFO] [stdout] test store::store_test::flusher::last_flush_error_peek_is_non_consuming ... ok
[INFO] [stdout] test store::store_test::concurrency::test_close_then_immediate_reopen_never_locks_out ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_concurrent_writers ... ok
[INFO] [stdout] test store::store_test::grouped::flush_error_returns_latest ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_file_backed_persists ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_mixed_write_and_durable ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_coalesces_writes ... ok
[INFO] [stdout] test store::store_test::locks::lock_helpers_succeed_when_free ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_unguarded_wal_append_race_during_checkpoint_copy_stays_loadable ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_repeated_checkpoints_under_multi_writer_grouped_load ... ok
[INFO] [stdout] test store::store_test::locks::read_with_scopes_guard_and_allows_later_write ... ok
[INFO] [stdout] test store::store_test::locks::retry_quarantine_in_write_returns_lock_timeout_not_ok ... ok
[INFO] [stdout] test store::store_test::locks::sub_millisecond_budget_does_not_instant_timeout ... ok
[INFO] [stdout] test store::store_test::locks::try_lock_gate_for_reports_reentrancy_cause ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_error_propagation ... ok
[INFO] [stdout] test store::store_test::locks::read_or_panic_panics_when_writer_holds_lock ... ok
[INFO] [stdout] test store::store_test::locks::set_lock_deadlock_timeout_changes_read_budget ... ok
[INFO] [stdout] test store::store_test::wal::flush_noop_in_immediate_mode ... ok
[INFO] [stdout] test store::store_test::wal::flush_noop_when_already_flushed ... ok
[INFO] [stdout] test store::store_test::wal::set_flush_policy_to_immediate ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_backend_accessible ... ok
[INFO] [stdout] test store::store_test::locks::write_in_write_returns_lock_timeout_not_hang ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_empty_write_noop ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_flush_persists_across_reopen ... ok
[INFO] [stdout] test store::store_test::locks::try_read_for_errors_when_writer_holds_lock ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_write_durable_drains_pending ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_flusher_processes_ops ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_multiple_writes_persist ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_open_empty_dir ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_rollback_does_not_persist ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_write_close_reopen ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_write_durable_empty_ops ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_write_durable_persists ... ok
[INFO] [stdout] test wal::diff_test::apply_delete_missing_key_is_ok ... ok
[INFO] [stdout] test wal::diff_test::apply_delete_removes_key ... ok
[INFO] [stdout] test wal::diff_test::apply_op_bytes_put_and_delete ... ok
[INFO] [stdout] test wal::diff_test::apply_op_delete_invalid_utf8 ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_bytes_delete_missing_is_ok ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_bytes_put_and_delete ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_delete_invalid_utf8 ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_invalid_utf8 ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_overwrites_existing ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_put_and_delete ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_with_custom_key ... ok
[INFO] [stdout] test wal::diff_test::apply_op_hash_with_delete ... ok
[INFO] [stdout] test wal::diff_test::apply_op_invalid_utf8_key_errors ... ok
[INFO] [stdout] test wal::diff_test::apply_op_with_converter_error ... ok
[INFO] [stdout] test wal::diff_test::apply_op_with_custom_key ... ok
[INFO] [stdout] test wal::diff_test::apply_op_with_delete ... ok
[INFO] [stdout] test wal::diff_test::apply_put_bad_payload_returns_error ... ok
[INFO] [stdout] test wal::diff_test::apply_put_different_collections_same_key ... ok
[INFO] [stdout] test wal::diff_test::apply_put_inserts_into_map ... ok
[INFO] [stdout] test wal::diff_test::apply_put_overwrites_existing ... ok
[INFO] [stdout] test wal::diff_test::apply_sequence_put_delete_put ... ok
[INFO] [stdout] test wal::format_test::bad_magic_detected ... ok
[INFO] [stdout] test wal::format_test::bad_version_detected ... ok
[INFO] [stdout] test wal::format_test::corruption_detected_via_hash ... ok
[INFO] [stdout] test wal::format_test::empty_ops_not_written ... ok
[INFO] [stdout] test wal::format_test::empty_wal_has_no_entries ... ok
[INFO] [stdout] test wal::format_test::file_too_short_for_header ... ok
[INFO] [stdout] test wal::format_test::partial_length_at_end_of_file ... ok
[INFO] [stdout] test wal::format_test::partial_write_detected ... ok
[INFO] [stdout] test wal::format_test::reopen_appends_at_end ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_inspect_after_checkpoint_crash_is_byte_identical ... ok
[INFO] [stdout] test wal::format_test::reset_clears_entries ... ok
[INFO] [stdout] test wal::format_test::valid_hash_but_invalid_postcard ... ok
[INFO] [stdout] test wal::format_test::truncate_at_removes_trailing_data ... ok
[INFO] [stdout] test wal::format_test::write_read_roundtrip ... ok
[INFO] [stdout] test store::checkpoint::checkpoint_test::test_crash_during_checkpoint_leaves_source_intact ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_write_persists ... ok
[INFO] [stdout] test wal::fuzz_test::test_iter_entries_truncated_at_every_offset_returns_valid_prefix ... ok
[INFO] [stdout] test wal::fuzz_test::test_snapshot_envelope_truncated_at_every_offset_never_panics ... ok
[INFO] [stdout] test wal::fuzz_test::test_iter_entries_random_buffers_never_panic ... ok
[INFO] [stdout] test wal::fuzz_test::test_tuple_huge_length_prefix_is_err_not_overflow_panic ... ok
[INFO] [stdout] test wal::fuzz_test::test_tuple_malformed_bytes_are_err_not_panic ... ok
[INFO] [stdout] test wal::fuzz_test::test_tuple_roundtrip_random_string_vec ... ok
[INFO] [stdout] test wal::fuzz_test::test_tuple_roundtrip_random_u32_string ... ok
[INFO] [stdout] test wal::key_test::i16_roundtrip ... ok
[INFO] [stdout] test wal::key_test::i16_wrong_length ... ok
[INFO] [stdout] test wal::key_test::i32_roundtrip ... ok
[INFO] [stdout] test wal::key_test::i32_wrong_length ... ok
[INFO] [stdout] test wal::key_test::i64_roundtrip ... ok
[INFO] [stdout] test wal::key_test::i64_wrong_length ... ok
[INFO] [stdout] test wal::key_test::i8_roundtrip ... ok
[INFO] [stdout] test wal::key_test::i8_wrong_length ... ok
[INFO] [stdout] test wal::key_test::ipaddr_empty_bytes ... ok
[INFO] [stdout] test wal::key_test::ipaddr_v4_roundtrip ... ok
[INFO] [stdout] test wal::key_test::ipaddr_v6_roundtrip ... ok
[INFO] [stdout] test wal::key_test::ipaddr_wrong_discriminant ... ok
[INFO] [stdout] test wal::key_test::ipv4_roundtrip ... ok
[INFO] [stdout] test wal::key_test::ipv6_roundtrip ... ok
[INFO] [stdout] test wal::key_test::string_empty_roundtrip ... ok
[INFO] [stdout] test wal::key_test::string_invalid_utf8 ... ok
[INFO] [stdout] test wal::key_test::string_roundtrip ... ok
[INFO] [stdout] test wal::key_test::tuple_empty_components ... ok
[INFO] [stdout] test wal::key_test::tuple_ipaddr_string_roundtrip ... ok
[INFO] [stdout] test wal::key_test::tuple_string_string_roundtrip ... ok
[INFO] [stdout] test wal::key_test::tuple_too_short ... ok
[INFO] [stdout] test wal::key_test::tuple_u32_u32_roundtrip ... ok
[INFO] [stdout] test wal::key_test::u16_roundtrip ... ok
[INFO] [stdout] test wal::key_test::u16_wrong_length ... ok
[INFO] [stdout] test wal::key_test::u32_le_byte_order ... ok
[INFO] [stdout] test wal::key_test::u32_max_value ... ok
[INFO] [stdout] test wal::key_test::u32_roundtrip ... ok
[INFO] [stdout] test wal::key_test::u32_wrong_length ... ok
[INFO] [stdout] test wal::key_test::u64_roundtrip ... ok
[INFO] [stdout] test wal::key_test::u64_wrong_length ... ok
[INFO] [stdout] test wal::key_test::u8_roundtrip ... ok
[INFO] [stdout] test wal::key_test::u8_wrong_length ... ok
[INFO] [stdout] test wal::key_test::vec_u8_roundtrip ... ok
[INFO] [stdout] test wal::merge_test::apply_delete_nonexistent_key_is_ok ... ok
[INFO] [stdout] test wal::merge_test::apply_deletes_from_map ... ok
[INFO] [stdout] test wal::merge_test::apply_empty_overlay_is_noop ... ok
[INFO] [stdout] test wal::merge_test::apply_overlay_hash_empty_is_noop ... ok
[INFO] [stdout] test wal::merge_test::apply_overlay_hash_puts_and_deletes ... ok
[INFO] [stdout] test wal::merge_test::apply_puts_and_deletes_combined ... ok
[INFO] [stdout] test wal::merge_test::apply_puts_into_empty_map ... ok
[INFO] [stdout] test wal::migration::migration_test::backward_migration_is_missing ... ok
[INFO] [stdout] test wal::migration::migration_test::chain_walks_multiple_hops ... ok
[INFO] [stdout] test wal::migration::migration_test::forward_migration_from_equal_version_is_missing ... ok
[INFO] [stdout] test wal::migration::migration_test::has_reports_registration_correctly ... ok
[INFO] [stdout] test wal::migration::migration_test::hops_does_not_double_count_a_replaced_migration ... ok
[INFO] [stdout] test wal::migration::migration_test::hops_enumerates_every_registered_migration ... ok
[INFO] [stdout] test wal::migration::migration_test::hops_is_empty_for_an_empty_registry ... ok
[INFO] [stdout] test wal::migration::migration_test::migration_error_propagated_with_hop ... ok
[INFO] [stdout] test wal::migration::migration_test::migration_panic_is_caught_and_reported ... ok
[INFO] [stdout] test wal::migration::migration_test::migrations_for_different_collections_are_independent ... ok
[INFO] [stdout] test wal::migration::migration_test::missing_at_start_reports_start_hop ... ok
[INFO] [stdout] test wal::migration::migration_test::missing_hop_reports_which_version ... ok
[INFO] [stdout] test wal::migration::migration_test::multi_hop_registration_panics - should panic ... ok
[INFO] [stdout] test wal::migration::migration_test::single_hop_migrate_succeeds ... ok
[INFO] [stdout] test wal::op::format_key_tests::binary_key_hex_encoded ... ok
[INFO] [stdout] test wal::op::format_key_tests::control_chars_fall_back_to_hex ... ok
[INFO] [stdout] test wal::op::format_key_tests::long_binary_key_truncates ... ok
[INFO] [stdout] test wal::op::format_key_tests::long_printable_truncates_with_ellipsis ... ok
[INFO] [stdout] test wal::op::format_key_tests::printable_utf8_is_quoted ... ok
[INFO] [stdout] test wal::overlay_test::contains_key_merged ... ok
[INFO] [stdout] test wal::overlay_test::delete_then_put_same_key ... ok
[INFO] [stdout] test wal::overlay_test::get_falls_through_to_committed ... ok
[INFO] [stdout] test wal::overlay_test::get_returns_none_for_deleted ... ok
[INFO] [stdout] test wal::overlay_test::get_returns_overlay_put ... ok
[INFO] [stdout] test wal::overlay_test::get_with_hashmap_committed ... ok
[INFO] [stdout] test wal::overlay_test::is_empty_on_fresh_overlay ... ok
[INFO] [stdout] test wal::overlay_test::iter_merges_both ... ok
[INFO] [stdout] test wal::overlay_test::retain_marks_deletes_and_returns_keys ... ok
[INFO] [stdout] test wal::overlay_test::retain_removes_overlay_put_that_shadows_committed ... ok
[INFO] [stdout] test wal::overlay_test::values_merges_committed_and_overlay ... ok
[INFO] [stdout] test wal::overlay_test::values_with_hashmap_committed ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::different_collections_coexist ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::empty_quarantine_loads_empty_when_file_absent ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::insert_dedupes_by_collection_and_key ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::load_rejects_bad_magic ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::load_rejects_unsupported_version ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::quarantine_reason_display ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::remove_key_deletes_single_entry ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::remove_where_uses_predicate ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::save_and_load_roundtrip ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::save_empty_removes_existing_file ... ok
[INFO] [stdout] test wal::quarantine::quarantine_test::save_survives_crash_between_tmp_and_rename ... ok
[INFO] [stdout] test wal::report::report_test::test_absorb_sums_op_counters_but_not_snapshot ... ok
[INFO] [stdout] test wal::report::report_test::test_applied_counts_are_not_loss ... ok
[INFO] [stdout] test wal::report::report_test::test_default_report_is_clean ... ok
[INFO] [stdout] test wal::report::report_test::test_drift_alone_is_not_loss ... ok
[INFO] [stdout] test wal::report::report_test::test_notes_are_bounded ... ok
[INFO] [stdout] test wal::report::report_test::test_quarantine_counts_as_loss ... ok
[INFO] [stdout] test wal::report::report_test::test_records_each_skip_class ... ok
[INFO] [stdout] test wal::report::report_test::test_report_json_carries_every_counter ... ok
[INFO] [stdout] test wal::report::report_test::test_report_round_trips_through_json ... ok
[INFO] [stdout] test wal::report::report_test::test_snapshot_discard_is_loss_but_absent_and_loaded_are_not ... ok
[INFO] [stdout] test wal::report::report_test::test_snapshot_status_and_drift_serialize ... ok
[INFO] [stdout] test wal::report::report_test::test_strict_error_falls_back_to_replay_loss ... ok
[INFO] [stdout] test wal::report::report_test::test_strict_error_prefers_schema_version_mismatch ... ok
[INFO] [stdout] test wal::report::report_test::test_summary_mentions_active_skip_classes ... ok
[INFO] [stdout] test wal::writer::crash_ext_test::crash_ext_child_worker ... ok
[INFO] [stdout] test wal::writer::crash_ext_test::test_crash_after_fsync_recovers_durable_write ... ok
[INFO] [stdout] test wal::fuzz_test::test_snapshot_envelope_byte_mutations_never_panic ... ok
[INFO] [stdout] test wal::writer::crash_ext_test::test_crash_during_quarantine_save_is_atomic ... ok
[INFO] [stdout] test wal::writer::crash_test::crash_child_worker ... ok
[INFO] [stdout] test wal::writer::crash_test::test_append_after_load_truncation_survives_reopen ... ok
[INFO] [stdout] test wal::fuzz_test::test_snapshot_random_buffers_never_panic ... ok
[INFO] [stdout] test wal::writer::crash_ext_test::test_crash_mid_append_never_replays_torn_entry ... ok
[INFO] [stdout] test wal::fuzz_test::test_iter_entries_single_bit_flips_never_panic_and_stay_prefix ... ok
[INFO] [stdout] test wal::writer_test::backend::creates_dir_if_missing ... ok
[INFO] [stdout] test wal::writer_test::backend::entry_count_survives_reopen ... ok
[INFO] [stdout] test wal::writer_test::backend::load_returns_default_on_empty_dir ... ok
[INFO] [stdout] test wal::writer_test::backend::load_truncates_corrupt_wal_tail ... ok
[INFO] [stdout] test wal::writer_test::backend::load_with_empty_snapshot_file ... ok
[INFO] [stdout] test wal::writer_test::backend::save_and_load_roundtrip ... ok
[INFO] [stdout] test wal::writer_test::backend::save_ops_and_replay ... ok
[INFO] [stdout] test wal::writer_test::backend::save_ops_empty_is_noop ... ok
[INFO] [stdout] test wal::writer_test::backend::save_ops_with_deletes ... ok
[INFO] [stdout] test wal::writer_test::backend::save_resets_wal ... ok
[INFO] [stdout] test wal::writer_test::backend::should_snapshot_threshold ... ok
[INFO] [stdout] test wal::writer_test::backend::snapshot_compacts_wal ... ok
[INFO] [stdout] test wal::writer_test::backend::snapshot_plus_wal_replay ... ok
[INFO] [stdout] test wal::writer_test::backend::wal_overrides_snapshot_keys ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_compact_if_needed_rechecks_threshold_under_exclusion ... ok
[INFO] [stdout] test wal::writer::crash_test::test_crash_during_compaction_preserves_acked_writes ... ok
[INFO] [stdout] test wal::writer::crash_test::test_inspect_after_compaction_crash_is_byte_identical ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_op_only_in_wal_prev_survives_two_boots ... ok
[INFO] [stdout] test wal::writer::crash_test::test_two_crashes_around_a_boot_preserve_acked_writes ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_snapshot_is_committed_before_wal_rotation ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_wal_prev_holds_preceding_generation_after_two_compactions ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_wal_prev_replay_is_idempotent_over_snapshot ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_wal_prev_survives_boots_until_next_compaction ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_empty_directory_reports_absent ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_does_not_create_missing_wal ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_is_repeatable ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_leaves_directory_byte_identical ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_missing_directory_errors ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_notes_unreadable_quarantine ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_write_snapshot_never_overlaps_itself ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_rejects_unreadable_wal_header ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_reports_quarantine_without_error ... ok
[INFO] [stdout] test wal::writer_test::snapshot::raw_v1_snapshot_readable_with_any_feature ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_reports_deferred_repairs ... ok
[INFO] [stdout] test wal::writer_test::snapshot::snapshot_missing_envelope_returns_error ... ok
[INFO] [stdout] test wal::writer_test::snapshot::snapshot_has_magic_and_version ... ok
[INFO] [stdout] test wal::writer_test::snapshot::snapshot_version_mismatch_returns_error ... ok
[INFO] [stdout] test wal::writer_test::inspect::test_inspect_matches_load_counts ... ok
[INFO] [stdout] test wal::writer_test::snapshot::zstd_snapshot_without_feature_returns_error ... ok
[INFO] [stdout] test wal::writer_test::snapshot::snapshot_roundtrip_with_envelope ... ok
[INFO] [stdout] test store::store_test::grouped::group_commit_clean_shutdown ... ok
[INFO] [stdout] test store::store_test::wal::close_shuts_down_flusher ... ok
[INFO] [stdout] test store::store_test::grouped::write_durable_bypasses_grouping ... ok
[INFO] [stdout] test store::store_test::wal::wal_store_grouped_close_flushes ... ok
[INFO] [stdout] test wal::writer_test::compaction::test_concurrent_compaction_paths_keep_every_acked_write ... ok
[INFO] [stderr]    Doc-tests etchdb
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 363 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 25.93s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/wal/migration.rs - wal::migration (line 13) ... ignored
[INFO] [stdout] test src/wal/migration.rs - wal::migration::MigrationSet::hops (line 129) ... ignored
[INFO] [stdout] test src/lib.rs - (line 17) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.61s; merged doctests compilation took 0.59s
[INFO] running `Command { std: "docker" "inspect" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947", kill_on_drop: false }`
[INFO] [stdout] 04fe5d006e13fa2d0b21a995b7b878b837cf238f289bb56937dbb2f08f67e947
