[INFO] cloning repository https://github.com/ShihShihDer/peregrine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ShihShihDer/peregrine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShihShihDer%2Fperegrine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShihShihDer%2Fperegrine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1edcf97cc38b9a9f0d99166b392bf4eaf8136e84
[INFO] testing ShihShihDer/peregrine 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%2FShihShihDer%2Fperegrine" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ShihShihDer/peregrine
[INFO] finished tweaking git repo https://github.com/ShihShihDer/peregrine
[INFO] tweaked toml for git repo https://github.com/ShihShihDer/peregrine written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ShihShihDer/peregrine 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/ShihShihDer/peregrine 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-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5
[INFO] running `Command { std: "docker" "start" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", 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" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5" "/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" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", 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" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling uuid v1.23.2
[INFO] [stderr]    Compiling bitflags v2.12.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling world-core v0.1.0 (/opt/rustwide/workdir/crates/world-core)
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling butfun-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 8m 11s
[INFO] running `Command { std: "docker" "inspect" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", 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" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5" "/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 butfun-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 35.27s
[INFO] running `Command { std: "docker" "inspect" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", 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" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/butfun_server-0335fa6e65ebd167)
[INFO] [stdout] 
[INFO] [stdout] running 312 tests
[INFO] [stdout] test auth::tests::ai_register_req_name_species_optional ... ok
[INFO] [stdout] test auth::tests::constant_time_eq_basics ... ok
[INFO] [stdout] test auth::tests::read_cookie_does_not_match_prefix ... ok
[INFO] [stdout] test auth::tests::read_cookie_missing_returns_none ... ok
[INFO] [stdout] test auth::tests::read_cookie_multiple_with_whitespace ... ok
[INFO] [stdout] test auth::tests::read_cookie_single ... ok
[INFO] [stdout] test auth::tests::ai_register_wrong_key_rejected_by_constant_time_eq ... ok
[INFO] [stdout] test auth::tests::sign_then_verify_round_trip ... ok
[INFO] [stdout] test auth::tests::verify_rejects_malformed_tokens ... ok
[INFO] [stdout] test auth::tests::verify_rejects_tampered_signature ... ok
[INFO] [stdout] test combat::tests::attacking_a_defeated_enemy_is_noop_and_drops_nothing ... ok
[INFO] [stdout] test auth::tests::verify_rejects_uid_swap_under_same_secret ... ok
[INFO] [stdout] test combat::tests::each_kind_drops_an_existing_resource ... ok
[INFO] [stdout] test combat::tests::combat_loot_stacks_into_the_same_gathered_inventory ... ok
[INFO] [stdout] test combat::tests::empty_inventory_fights_unarmed ... ok
[INFO] [stdout] test combat::tests::carrying_only_a_pickaxe_still_fights_unarmed ... ok
[INFO] [stdout] test combat::tests::enemy_table_is_well_formed ... ok
[INFO] [stdout] test combat::tests::full_cycle_kill_respawn_kill_again ... ok
[INFO] [stdout] test combat::tests::every_enemy_drop_is_a_usable_economic_resource ... ok
[INFO] [stdout] test combat::tests::is_loadable_accepts_normal_and_rejects_corrupt ... ok
[INFO] [stdout] test combat::tests::killing_blow_drops_loot_and_starts_respawn ... ok
[INFO] [stdout] test combat::tests::defeated_enemy_respawns_after_timer ... ok
[INFO] [stdout] test combat::tests::loot_drops_exactly_once_on_the_lethal_blow ... ok
[INFO] [stdout] test combat::tests::new_enemy_is_full_hp_and_alive ... ok
[INFO] [stdout] test combat::tests::non_lethal_attack_damages_but_drops_nothing ... ok
[INFO] [stdout] test combat::tests::overkill_clamps_to_zero_and_drops_once ... ok
[INFO] [stdout] test combat::tests::serde_round_trip_preserves_state ... ok
[INFO] [stdout] test combat::tests::tick_on_living_enemy_is_noop ... ok
[INFO] [stdout] test combat::tests::weapon_actually_downs_an_enemy_faster ... ok
[INFO] [stdout] test combat::tests::weapon_hits_harder_than_fist ... ok
[INFO] [stdout] test combat::tests::only_weapons_map_from_items ... ok
[INFO] [stdout] test combat::tests::weapon_in_inventory_raises_attack_power ... ok
[INFO] [stdout] test combat::tests::zero_or_negative_dt_is_noop ... ok
[INFO] [stdout] test combat::tests::zero_power_attack_is_noop ... ok
[INFO] [stdout] test connections::tests::counts_are_independent_per_player ... ok
[INFO] [stdout] test auth::tests::verify_rejects_forged_uid_with_unknown_secret ... ok
[INFO] [stdout] test connections::tests::first_acquire_reports_first_then_not ... ok
[INFO] [stdout] test connections::tests::id_can_be_reused_after_full_release ... ok
[INFO] [stdout] test connections::tests::release_reports_last_only_when_count_hits_zero ... ok
[INFO] [stdout] test connections::tests::release_without_record_is_treated_as_last ... ok
[INFO] [stdout] test connections::tests::single_connection_acquire_then_release_is_last ... ok
[INFO] [stdout] test crafting::tests::craft_fails_and_keeps_materials_when_output_would_overflow ... ok
[INFO] [stdout] test crafting::tests::craft_consumes_inputs_and_yields_output ... ok
[INFO] [stdout] test crafting::tests::craft_fails_when_partially_short ... ok
[INFO] [stdout] test crafting::tests::craft_keeps_surplus_materials ... ok
[INFO] [stdout] test crafting::tests::gathered_materials_flow_into_crafting ... ok
[INFO] [stdout] test crafting::tests::recipe_ids_are_wire_safe_snake_case ... ok
[INFO] [stdout] test crafting::tests::recipe_output_is_disjoint_from_its_own_inputs ... ok
[INFO] [stdout] test crafting::tests::recipe_table_is_well_formed ... ok
[INFO] [stdout] test crafting::tests::reinforced_pickaxe_needs_a_pickaxe_first ... ok
[INFO] [stdout] test crafting::tests::weapon_recipe_crafts_from_gathered_materials ... ok
[INFO] [stdout] test crafting::tests::weapon_recipe_is_all_or_nothing_when_short ... ok
[INFO] [stdout] test crops::tests::growth_never_exceeds_ripe_cap ... ok
[INFO] [stdout] test crops::tests::growth_is_capped_by_remaining_moisture ... ok
[INFO] [stdout] test crops::tests::does_not_grow_without_water ... ok
[INFO] [stdout] test crops::tests::freshly_planted_is_dry_seed ... ok
[INFO] [stdout] test crops::tests::rewatering_continues_growth_to_ripe ... ok
[INFO] [stdout] test crops::tests::stage_thresholds ... ok
[INFO] [stdout] test crafting::tests::craft_fails_and_is_unchanged_when_missing_a_material ... ok
[INFO] [stdout] test crops::tests::watering_lets_it_grow ... ok
[INFO] [stdout] test crafting::tests::every_recipe_input_is_obtainable ... ok
[INFO] [stdout] test crafting::tests::reinforced_pickaxe_upgrades_a_crafted_pickaxe ... ok
[INFO] [stdout] test daynight::tests::advance_accumulates_time ... ok
[INFO] [stdout] test daynight::tests::advance_ignores_non_positive_and_non_finite_dt ... ok
[INFO] [stdout] test crops::tests::zero_dt_is_a_noop ... ok
[INFO] [stdout] test daynight::tests::advance_wraps_around_full_cycle ... ok
[INFO] [stdout] test daynight::tests::at_clamps_and_wraps_loaded_value ... ok
[INFO] [stdout] test daynight::tests::deserialize_wraps_out_of_range_elapsed ... ok
[INFO] [stdout] test daynight::tests::fraction_always_in_unit_range ... ok
[INFO] [stdout] test daynight::tests::growth_rate_clamps_out_of_range_light ... ok
[INFO] [stdout] test daynight::tests::growth_rate_fastest_at_midday_slowest_at_midnight ... ok
[INFO] [stdout] test daynight::tests::growth_rate_maps_light_to_bounds ... ok
[INFO] [stdout] test daynight::tests::light_always_within_bounds ... ok
[INFO] [stdout] test daynight::tests::light_peaks_at_midday_and_dips_at_midnight ... ok
[INFO] [stdout] test daynight::tests::new_starts_at_dawn ... ok
[INFO] [stdout] test daynight::tests::phase_thresholds_cover_full_cycle ... ok
[INFO] [stdout] test daynight::tests::serialized_day_night_round_trips ... ok
[INFO] [stdout] test daynight::tests::view_reflects_current_phase_and_light ... ok
[INFO] [stdout] test daynight_store::tests::load_from_missing_disk_is_none ... ok
[INFO] [stdout] test crops::tests::harvest_yields_ether_and_resets ... ok
[INFO] [stdout] test crops::tests::is_loadable_accepts_normal_and_rejects_corrupt ... ok
[INFO] [stdout] test daynight::tests::light_falls_back_on_non_finite ... ok
[INFO] [stdout] test db::tests::empty_or_whitespace_url_means_no_db ... ok
[INFO] [stdout] test db::tests::already_encoded_socket_url_is_left_untouched ... ok
[INFO] [stdout] test crops::tests::harvest_only_when_ripe ... ok
[INFO] [stdout] test daynight_store::tests::loaded_is_dawn_for_fresh_memory_store ... ok
[INFO] [stdout] test db::tests::libpq_socket_url_becomes_sqlx_form ... ok
[INFO] [stdout] test db::tests::libpq_socket_url_keeps_other_query_params ... ok
[INFO] [stdout] test db::tests::missing_url_means_no_db ... ok
[INFO] [stdout] test db::tests::real_url_is_trimmed_and_kept ... ok
[INFO] [stdout] test db::tests::tcp_url_is_left_untouched ... ok
[INFO] [stdout] test economy::tests::buy_expansion_deducts_ether_and_grows_plot ... ok
[INFO] [stdout] test economy::tests::buy_expansion_is_all_or_nothing_when_short ... ok
[INFO] [stdout] test economy::tests::buy_expansion_drains_ether_correctly_over_several_buys ... ok
[INFO] [stdout] test economy::tests::buy_expansion_stops_at_max ... ok
[INFO] [stdout] test economy::tests::expansion_cost_escalates_per_tile ... ok
[INFO] [stdout] test economy::tests::expansion_cost_saturates_instead_of_panicking_on_overflow ... ok
[INFO] [stdout] test economy::tests::is_loadable_accepts_valid_and_rejects_over_cap ... ok
[INFO] [stdout] test economy::tests::spend_deducts_when_affordable ... ok
[INFO] [stdout] test economy::tests::new_wallet_starts_empty_and_can_expand ... ok
[INFO] [stdout] test economy::tests::spend_refuses_and_never_goes_negative ... ok
[INFO] [stdout] test crafting::tests::recipe_by_id_finds_known_and_rejects_unknown ... ok
[INFO] [stdout] test db::tests::url_without_query_is_left_untouched ... ok
[INFO] [stdout] test daynight_store::tests::flush_is_noop_without_postgres ... ok
[INFO] [stdout] test enemy_field::tests::attack_nearest_hits_enemy ... ok
[INFO] [stdout] test enemy_field::tests::enemy_chases_player_and_crosses_chunk ... ok
[INFO] [stdout] test enemy_field::tests::ensure_chunks_generates_enemies ... ok
[INFO] [stdout] test field::tests::cannot_water_empty_cell ... ok
[INFO] [stdout] test field::tests::cell_at_and_reach_are_relative_to_plot_origin ... ok
[INFO] [stdout] test field::tests::cell_at_is_none_outside_field ... ok
[INFO] [stdout] test field::tests::cell_at_maps_origin_to_first_cell ... ok
[INFO] [stdout] test field::tests::cell_at_maps_within_tile_to_same_cell ... ok
[INFO] [stdout] test field::tests::cell_at_rejects_non_finite_coords ... ok
[INFO] [stdout] test field::tests::coords_in_another_plot_map_to_no_cell_on_my_field ... ok
[INFO] [stdout] test enemy_field::tests::new_field_is_empty ... ok
[INFO] [stdout] test field::tests::cannot_plant_on_untilled ... ok
[INFO] [stdout] test economy::tests::plot_wallet_serde_round_trips ... ok
[INFO] [stdout] test field::tests::for_plot_origin_follows_plots_geometry ... ok
[INFO] [stdout] test field::tests::for_plot_zero_matches_new_origin ... ok
[INFO] [stdout] test field::tests::from_tiles_origin_comes_from_index ... ok
[INFO] [stdout] test field::tests::from_tiles_rejects_corrupt_crop_values ... ok
[INFO] [stdout] test field::tests::from_tiles_rejects_wrong_cell_count ... ok
[INFO] [stdout] test field::tests::full_cycle_till_plant_water_grow_harvest ... ok
[INFO] [stdout] test field::tests::harvest_unripe_returns_none_and_keeps_crop ... ok
[INFO] [stdout] test field::tests::interact_out_of_bounds_is_nothing ... ok
[INFO] [stdout] test field::tests::interact_walks_the_care_cycle ... ok
[INFO] [stdout] test field::tests::new_field_is_all_untilled ... ok
[INFO] [stdout] test field::tests::ops_on_one_cell_do_not_affect_others ... ok
[INFO] [stdout] test field::tests::plant_after_till_creates_seed ... ok
[INFO] [stdout] test field::tests::reseated_rejects_corrupt_field ... ok
[INFO] [stdout] test field::tests::reseated_round_trips_through_serde_with_origin_from_index ... ok
[INFO] [stdout] test field::tests::serialized_field_round_trips_mid_growth ... ok
[INFO] [stdout] test field::tests::tick_only_grows_watered_crops ... ok
[INFO] [stdout] test field::tests::till_only_works_on_untilled ... ok
[INFO] [stdout] test field::tests::view_marks_planted_seed_dry_then_wet ... ok
[INFO] [stdout] test field::tests::view_reports_origin_size_and_cell_count ... ok
[INFO] [stdout] test field::tests::within_reach_far_away_is_false ... ok
[INFO] [stdout] test field::tests::view_ripe_crop_is_not_marked_dry ... ok
[INFO] [stdout] test field::tests::within_reach_inside_field_is_true ... ok
[INFO] [stdout] test field::tests::within_reach_just_outside_edge_is_true ... ok
[INFO] [stdout] test field_store::tests::empty_before_remember ... ok
[INFO] [stdout] test field_store::tests::disk_row_serde_round_trips_field_and_index ... ok
[INFO] [stdout] test field_store::tests::merge_seed_db_wins_for_same_player ... ok
[INFO] [stdout] test field_store::tests::flush_is_noop_without_postgres ... ok
[INFO] [stdout] test field_store::tests::load_from_disk_skips_duplicate_plot_index ... ok
[INFO] [stdout] test field_store::tests::merge_seed_dedups_within_seed_deterministically ... ok
[INFO] [stdout] test field_store::tests::merge_seed_fills_only_new_players ... ok
[INFO] [stdout] test field::tests::till_out_of_bounds_is_noop ... ok
[INFO] [stdout] test field_store::tests::merge_seed_skips_seed_row_colliding_with_db_index ... ok
[INFO] [stdout] test field_store::tests::remember_reflected_in_loaded_fields_and_plots ... ok
[INFO] [stdout] test game::tests::有連線時每十秒落地一次 ... ok
[INFO] [stdout] test field_store::tests::remember_all_updates_many_at_once ... ok
[INFO] [stdout] test game::tests::有任一訂閱者就廣播 ... ok
[INFO] [stdout] test field_store::tests::remember_overwrites_previous ... ok
[INFO] [stdout] test game::tests::沒有訂閱者時不廣播 ... ok
[INFO] [stdout] test game::tests::離峰無連線時落地拉長到每六十秒 ... ok
[INFO] [stdout] test game::tests::離峰節律是有連線節律的整數倍_轉場乾淨 ... ok
[INFO] [stdout] test gather::tests::depleted_node_respawns_after_timer ... ok
[INFO] [stdout] test gather::tests::full_cycle_gather_deplete_respawn_gather_again ... ok
[INFO] [stdout] test gather::tests::gathering_a_depleted_node_yields_nothing ... ok
[INFO] [stdout] test gather::tests::gather_yields_resource_and_decrements_durability ... ok
[INFO] [stdout] test gather::tests::gathering_to_zero_depletes_and_starts_respawn ... ok
[INFO] [stdout] test gather::tests::is_loadable_accepts_normal_and_rejects_corrupt ... ok
[INFO] [stdout] test gather::tests::node_table_is_well_formed ... ok
[INFO] [stdout] test gather::tests::serde_round_trip_preserves_state ... ok
[INFO] [stdout] test gather::tests::tick_on_harvestable_node_is_noop ... ok
[INFO] [stdout] test gather::tests::zero_or_negative_dt_is_noop ... ok
[INFO] [stdout] test gather_field::tests::gather_near_picks_correct_node ... ok
[INFO] [stdout] test gather_field::tests::ensure_chunks_generates_nodes ... ok
[INFO] [stdout] test gather_field::tests::new_field_is_empty ... ok
[INFO] [stdout] test gather_field::tests::placement_is_deterministic ... ok
[INFO] [stdout] test inventory::tests::add_caps_at_max_stack_and_reports_actual ... ok
[INFO] [stdout] test gather_field::tests::node_respawns_and_moves ... ok
[INFO] [stdout] test inventory::tests::add_zero_is_noop ... ok
[INFO] [stdout] test gather::tests::new_node_is_full_and_harvestable ... ok
[INFO] [stdout] test inventory::tests::add_accumulates_and_reports_added_amount ... ok
[INFO] [stdout] test inventory::tests::entries_are_sorted_and_nonzero ... ok
[INFO] [stdout] test inventory::tests::every_item_has_a_sink ... ok
[INFO] [stdout] test inventory::tests::every_item_has_a_source ... ok
[INFO] [stdout] test inventory::tests::gather_yield_flows_into_inventory_via_into ... ok
[INFO] [stdout] test inventory::tests::item_kind_all_lists_every_variant ... ok
[INFO] [stdout] test inventory::tests::new_inventory_is_empty ... ok
[INFO] [stdout] test inventory::tests::serde_round_trip_preserves_contents ... ok
[INFO] [stdout] test inventory::tests::node_kind_maps_to_item_kind ... ok
[INFO] [stdout] test inventory::tests::is_loadable_accepts_normal_and_rejects_corrupt ... ok
[INFO] [stdout] test inventory::tests::take_fails_and_is_unchanged_when_insufficient ... ok
[INFO] [stdout] test inventory::tests::take_succeeds_when_enough_and_decrements ... ok
[INFO] [stdout] test inventory::tests::take_zero_is_noop_success ... ok
[INFO] [stdout] test inventory::tests::take_to_zero_removes_entry ... ok
[INFO] [stdout] test inventory_store::tests::corrupt_disk_row_is_skipped_on_load ... ok
[INFO] [stdout] test inventory_store::tests::disk_row_serde_round_trips ... ok
[INFO] [stdout] test inventory_store::tests::empty_inventory_round_trips ... ok
[INFO] [stdout] test inventory_store::tests::recall_is_none_before_remember ... ok
[INFO] [stdout] test inventory_store::tests::flush_is_noop_without_postgres ... ok
[INFO] [stdout] test inventory_store::tests::remember_all_updates_many_at_once ... ok
[INFO] [stdout] test inventory_store::tests::remember_then_recall_round_trips ... ok
[INFO] [stdout] test plot_registry::tests::assigns_sequential_indices_from_zero ... ok
[INFO] [stdout] test plot_registry::tests::from_saved_empty_behaves_like_new ... ok
[INFO] [stdout] test plot_registry::tests::distinct_users_get_distinct_indices ... ok
[INFO] [stdout] test inventory_store::tests::stores_are_independent_per_player ... ok
[INFO] [stdout] test inventory_store::tests::remember_overwrites_previous_inventory ... ok
[INFO] [stdout] test plot_registry::tests::from_saved_preserves_owners ... ok
[INFO] [stdout] test plot_registry::tests::from_saved_resumes_after_max_index ... ok
[INFO] [stdout] test plot_registry::tests::index_of_reflects_assignment ... ok
[INFO] [stdout] test plot_registry::tests::indices_only_grow ... ok
[INFO] [stdout] test plot_registry::tests::owns_only_own_plot ... ok
[INFO] [stdout] test plot_registry::tests::same_user_keeps_same_plot ... ok
[INFO] [stdout] test plots::tests::adjacent_plots_leave_a_visible_gap ... ok
[INFO] [stdout] test plots::tests::distinct_indices_give_distinct_origins ... ok
[INFO] [stdout] test plots::tests::plot_origin_is_deterministic ... ok
[INFO] [stdout] test plots::tests::no_two_plots_overlap ... ok
[INFO] [stdout] test plots::tests::plot_zero_aligns_with_global_field ... ok
[INFO] [stdout] test plots::tests::spiral_grid_walks_a_square_spiral ... ok
[INFO] [stdout] test positions::tests::loaded_bad_position_still_gated_by_spawn_at ... ok
[INFO] [stdout] test positions::tests::flush_is_noop_without_postgres ... ok
[INFO] [stdout] test positions::tests::recall_is_none_before_remember ... ok
[INFO] [stdout] test positions::tests::saved_round_trips_through_serde ... ok
[INFO] [stdout] test positions::tests::recalled_ether_survives_round_trip ... ok
[INFO] [stdout] test positions::tests::remember_then_recall_round_trips ... ok
[INFO] [stdout] test gather::tests::every_gathered_resource_has_a_sink ... ok
[INFO] [stdout] test positions::tests::remember_overwrites_previous_state ... ok
[INFO] [stdout] test inventory::tests::has_reflects_count ... ok
[INFO] [stdout] test positions::tests::spawn_falls_back_to_center_when_no_history ... ok
[INFO] [stdout] test positions::tests::spawn_falls_back_to_center_on_non_finite ... ok
[INFO] [stdout] test positions::tests::spawn_preserves_out_of_bounds_finite_coordinates ... ok
[INFO] [stdout] test positions::tests::spawn_uses_recalled_position ... ok
[INFO] [stdout] test protocol::tests::parses_gather_message ... ok
[INFO] [stdout] test protocol::tests::snapshot_serializes_field_ether_inventory_and_nodes ... ok
[INFO] [stdout] test state::tests::diagonal_is_not_faster ... ok
[INFO] [stdout] test state::tests::idle_player_stays_put ... ok
[INFO] [stdout] test state::tests::live_rename_for_offline_player_is_noop ... ok
[INFO] [stdout] test state::tests::live_rename_updates_online_player_snapshot_name ... ok
[INFO] [stdout] test state::tests::moves_right_at_expected_speed ... ok
[INFO] [stdout] test positions::tests::stores_are_independent_per_player ... ok
[INFO] [stdout] test state::tests::chat_and_snapshot_channels_are_independent ... ok
[INFO] [stdout] test protocol::tests::parses_farm_message ... ok
[INFO] [stdout] test state::tests::walks_past_world_edge_into_negative ... ok
[INFO] [stdout] test suggestions::tests::add_stores_and_lists_newest_first ... ok
[INFO] [stdout] test suggestions::tests::add_rejects_empty_after_sanitize_and_stores_nothing ... ok
[INFO] [stdout] test suggestions::tests::caps_text_by_chars_not_bytes ... ok
[INFO] [stdout] test suggestions::tests::control_chars_do_not_count_toward_cap ... ok
[INFO] [stdout] test suggestions::tests::caps_from_by_chars ... ok
[INFO] [stdout] test suggestions::tests::control_or_whitespace_only_text_is_rejected ... ok
[INFO] [stdout] test suggestions::tests::empty_from_falls_back_to_anonymous ... ok
[INFO] [stdout] test suggestions::tests::load_path_drops_empty_after_sanitize ... ok
[INFO] [stdout] test suggestions::tests::load_path_preserves_clean_lines_unchanged ... ok
[INFO] [stdout] test suggestions::tests::load_path_skips_malformed_json_but_keeps_valid ... ok
[INFO] [stdout] test suggestions::tests::load_path_strips_control_chars_from_legacy_lines ... ok
[INFO] [stdout] test suggestions::tests::strips_control_chars_from_from ... ok
[INFO] [stdout] test suggestions::tests::stripping_esc_neutralizes_ansi_injection ... ok
[INFO] [stdout] test suggestions::tests::keeps_text_at_exactly_the_cap ... ok
[INFO] [stdout] test suggestions::tests::keeps_newlines_in_text_but_strips_other_controls ... ok
[INFO] [stdout] test tools::tests::best_tool_prefers_reinforced_over_plain_pickaxe ... ok
[INFO] [stdout] test tools::tests::empty_inventory_falls_back_to_fist ... ok
[INFO] [stdout] test suggestions::tests::trims_and_keeps_normal_input ... ok
[INFO] [stdout] test tools::tests::every_craftable_tool_is_worth_crafting ... ok
[INFO] [stdout] test tools::tests::crafted_pickaxe_then_gathers_faster_end_to_end ... ok
[INFO] [stdout] test tools::tests::every_tool_item_is_obtainable ... ok
[INFO] [stdout] test tools::tests::fist_is_base_speed ... ok
[INFO] [stdout] test tools::tests::only_tools_map_from_items ... ok
[INFO] [stdout] test tools::tests::pickaxe_in_inventory_speeds_gathering ... ok
[INFO] [stdout] test tools::tests::pickaxe_speeds_gathering ... ok
[INFO] [stdout] test users::tests::codename_varies_with_seed ... ok
[INFO] [stdout] test tools::tests::reinforced_pickaxe_is_faster_than_pickaxe ... ok
[INFO] [stdout] test tools::tests::resources_alone_do_not_speed_gathering ... ok
[INFO] [stdout] test users::tests::codename_has_expected_shape ... ok
[INFO] [stdout] test users::tests::control_only_name_falls_back_to_default ... ok
[INFO] [stdout] test users::tests::control_chars_filtered_before_truncation ... ok
[INFO] [stdout] test users::tests::counts_chars_not_bytes ... ok
[INFO] [stdout] test users::tests::empty_or_whitespace_falls_back_to_default ... ok
[INFO] [stdout] test users::tests::index_users_last_line_wins_for_same_id ... ok
[INFO] [stdout] test users::tests::find_or_create_returns_same_user_for_same_external_id ... ok
[INFO] [stdout] test users::tests::keeps_normal_name ... ok
[INFO] [stdout] test users::tests::create_ai_makes_distinct_accounts ... ok
[INFO] [stdout] test users::tests::index_users_keeps_distinct_ids ... ok
[INFO] [stdout] test users::tests::codename_survives_sanitize_unchanged ... ok
[INFO] [stdout] test users::tests::load_path_control_only_name_falls_back_to_default ... ok
[INFO] [stdout] test users::tests::load_path_strips_control_chars_from_name_and_species ... ok
[INFO] [stdout] test users::tests::species_strips_control_chars ... ok
[INFO] [stdout] test users::tests::strips_control_chars_from_name ... ok
[INFO] [stdout] test users::tests::species_keeps_normal_value ... ok
[INFO] [stdout] test users::tests::species_empty_or_whitespace_falls_back_to_default ... ok
[INFO] [stdout] test users::tests::species_trims_whitespace ... ok
[INFO] [stdout] test users::tests::load_path_keeps_clean_lines_and_skips_malformed ... ok
[INFO] [stdout] test users::tests::rename_updates_name_and_persists_in_index ... ok
[INFO] [stdout] test users::tests::trims_surrounding_whitespace ... ok
[INFO] [stdout] test users::tests::truncates_to_24_chars ... ok
[INFO] [stdout] test vitals::tests::downed_player_recovers_to_full_after_timer ... ok
[INFO] [stdout] test vitals::tests::damaging_a_downed_player_is_noop ... ok
[INFO] [stdout] test vitals::tests::full_cycle_down_recover_take_damage_again ... ok
[INFO] [stdout] test vitals::tests::enemy_threat_damages_player_vitals ... ok
[INFO] [stdout] test vitals::tests::lethal_blow_downs_and_starts_recovery ... ok
[INFO] [stdout] test vitals::tests::new_vitals_is_full_hp_and_alive ... ok
[INFO] [stdout] test vitals::tests::full_health_tick_is_noop ... ok
[INFO] [stdout] test vitals::tests::no_regen_during_cooldown_after_being_hit ... ok
[INFO] [stdout] test vitals::tests::overkill_clamps_to_zero_and_downs_once ... ok
[INFO] [stdout] test vitals::tests::non_lethal_damage_reduces_hp_but_not_downed ... ok
[INFO] [stdout] test vitals::tests::enough_enemy_hits_eventually_down_the_player ... ok
[INFO] [stdout] test vitals::tests::is_loadable_accepts_normal_and_rejects_corrupt ... ok
[INFO] [stdout] test vitals::tests::regen_never_exceeds_max_hp ... ok
[INFO] [stdout] test vitals::tests::regenerates_after_leaving_combat ... ok
[INFO] [stdout] test vitals::tests::serde_round_trip_preserves_state ... ok
[INFO] [stdout] test ws::tests::caps_by_chars_not_bytes ... ok
[INFO] [stdout] test vitals::tests::zero_power_damage_is_noop ... ok
[INFO] [stdout] test ws::tests::closed_channel_stops_forwarding ... ok
[INFO] [stdout] test vitals::tests::zero_or_negative_or_nonfinite_dt_is_noop ... ok
[INFO] [stdout] test ws::tests::keeps_chat_at_exactly_the_cap ... ok
[INFO] [stdout] test ws::tests::keeps_normal_chat_trimmed ... ok
[INFO] [stdout] test ws::tests::lagged_client_is_skipped_not_disconnected ... ok
[INFO] [stdout] test ws::tests::whitespace_or_control_only_is_none ... ok
[INFO] [stdout] test ws::tests::strips_control_chars ... ok
[INFO] [stdout] test daynight_store::tests::jsonl_round_trips_through_disk ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- daynight_store::tests::jsonl_round_trips_through_disk stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'daynight_store::tests::jsonl_round_trips_through_disk' (4339) panicked at src/daynight_store.rs:201:41:
[INFO] [stdout] 應讀得回剛寫的時刻
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a3824e378c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a3824e378c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a3824e378c1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a3824e378c1 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a3824e4e7aa - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a3824e4e7aa - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5a3824e3c2fc - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5a3824e3c2fc - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5a3824e137c6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a3824e137c6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a3824e2e7a9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a3824be3ea0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5a3824be3ea0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5a3824e2ead2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5a3824e2ead2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5a3824e13872 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5a3824e0ade9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a3824e1474d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5a3824e4ef9c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a3824e4ec64 - core[6883ba1bc0fe4ed1]::panicking::panic_display::<&str>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:259:5
[INFO] [stdout]   20:     0x5a3824e4ec64 - core[6883ba1bc0fe4ed1]::option::expect_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/option.rs:2260:5
[INFO] [stdout]   21:     0x5a3824b72da8 - <core[6883ba1bc0fe4ed1]::option::Option<butfun_server[e863134d05516ec3]::daynight::DayNight>>::expect
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/option.rs:969:21
[INFO] [stdout]   22:     0x5a3824b72da8 - butfun_server[e863134d05516ec3]::daynight_store::tests::jsonl_round_trips_through_disk
[INFO] [stdout]                                at /opt/rustwide/workdir/src/daynight_store.rs:201:41
[INFO] [stdout]   23:     0x5a3824b48989 - butfun_server[e863134d05516ec3]::daynight_store::tests::jsonl_round_trips_through_disk::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/daynight_store.rs:191:40
[INFO] [stdout]   24:     0x5a3824b48989 - <butfun_server[e863134d05516ec3]::daynight_store::tests::jsonl_round_trips_through_disk::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5a3824bd71db - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5a3824bd71db - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5a3824be4825 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5a3824be4825 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5a3824be4825 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   30:     0x5a3824be4825 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5a3824be4825 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5a3824be4825 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5a3824be4825 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5a3824bdf2d4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5a3824bdf2d4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5a3824be7972 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5a3824be7972 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5a3824be7972 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   39:     0x5a3824be7972 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5a3824be7972 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5a3824be7972 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5a3824be7972 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5a3824e364ff - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   44:     0x5a3824e364ff - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   45:     0x79f33e8a3aa4 - <unknown>
[INFO] [stdout]   46:     0x79f33e930a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     daynight_store::tests::jsonl_round_trips_through_disk
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 311 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin butfun-server`
[INFO] running `Command { std: "docker" "inspect" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5", kill_on_drop: false }`
[INFO] [stdout] c66e2a356485d31f98d78240a0d87aaca06bbbe8de05976a425695d73ae2a3e5
