[INFO] fetching crate scatter-proxy 0.8.0...
[INFO] testing scatter-proxy-0.8.0 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate scatter-proxy 0.8.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate scatter-proxy 0.8.0
[INFO] finished tweaking crates.io crate scatter-proxy 0.8.0
[INFO] tweaked toml for crates.io crate scatter-proxy 0.8.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate scatter-proxy 0.8.0 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate scatter-proxy 0.8.0 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f9111afa6e5587e69d47c2a30c904b9eed3580df7207b1497e60a781da89625e
[INFO] running `Command { std: "docker" "start" "-a" "f9111afa6e5587e69d47c2a30c904b9eed3580df7207b1497e60a781da89625e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f9111afa6e5587e69d47c2a30c904b9eed3580df7207b1497e60a781da89625e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9111afa6e5587e69d47c2a30c904b9eed3580df7207b1497e60a781da89625e", kill_on_drop: false }`
[INFO] [stdout] f9111afa6e5587e69d47c2a30c904b9eed3580df7207b1497e60a781da89625e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1837d109bab51ddc2b6dc7b4ba742704d04b459139d90be975b358f94aed2af6
[INFO] running `Command { std: "docker" "start" "-a" "1837d109bab51ddc2b6dc7b4ba742704d04b459139d90be975b358f94aed2af6", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling scatter-proxy v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.69s
[INFO] running `Command { std: "docker" "inspect" "1837d109bab51ddc2b6dc7b4ba742704d04b459139d90be975b358f94aed2af6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1837d109bab51ddc2b6dc7b4ba742704d04b459139d90be975b358f94aed2af6", kill_on_drop: false }`
[INFO] [stdout] 1837d109bab51ddc2b6dc7b4ba742704d04b459139d90be975b358f94aed2af6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a3cd6ed8c109fde0f27b73dc46aaa579b57c60a07355c5b928c4c5360035d27
[INFO] running `Command { std: "docker" "start" "-a" "5a3cd6ed8c109fde0f27b73dc46aaa579b57c60a07355c5b928c4c5360035d27", kill_on_drop: false }`
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling scatter-proxy v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 17.93s
[INFO] running `Command { std: "docker" "inspect" "5a3cd6ed8c109fde0f27b73dc46aaa579b57c60a07355c5b928c4c5360035d27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a3cd6ed8c109fde0f27b73dc46aaa579b57c60a07355c5b928c4c5360035d27", kill_on_drop: false }`
[INFO] [stdout] 5a3cd6ed8c109fde0f27b73dc46aaa579b57c60a07355c5b928c4c5360035d27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fceb55fb8ee6702eacb72e6eec8304dd726122cde3398e374741bb5a346789e7
[INFO] running `Command { std: "docker" "start" "-a" "fceb55fb8ee6702eacb72e6eec8304dd726122cde3398e374741bb5a346789e7", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/scatter_proxy-5c788bad9181e81d)
[INFO] [stdout] 
[INFO] [stdout] running 210 tests
[INFO] [stdout] test classifier::tests::custom_classifier_overrides_defaults ... ok
[INFO] [stdout] test classifier::tests::headers_are_available_to_classifier ... ok
[INFO] [stdout] test classifier::tests::can_be_used_as_trait_object ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_200_empty_body ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_301_redirect ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_400_bad_request ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_401_unauthorised ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_403 ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_404_not_found ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_407_proxy_auth_required ... ok
[INFO] [stdout] test classifier::tests::proxy_blocked_429 ... ok
[INFO] [stdout] test classifier::tests::success_200_with_body ... ok
[INFO] [stdout] test classifier::tests::success_201_with_body ... ok
[INFO] [stdout] test classifier::tests::success_204_no_content_empty_body ... ok
[INFO] [stdout] test classifier::tests::target_error_500 ... ok
[INFO] [stdout] test classifier::tests::target_error_502 ... ok
[INFO] [stdout] test classifier::tests::target_error_503 ... ok
[INFO] [stdout] test classifier::tests::verdict_is_copy_and_clone ... ok
[INFO] [stdout] test config::tests::test_cooldown_max_gte_cooldown_base ... ok
[INFO] [stdout] test config::tests::test_rate_limit_config_defaults ... ok
[INFO] [stdout] test config::tests::test_config_can_be_customised ... ok
[INFO] [stdout] test config::tests::test_source_refresh_interval_is_10_minutes ... ok
[INFO] [stdout] test config::tests::test_default_proxy_sources_not_empty ... ok
[INFO] [stdout] test config::tests::test_state_save_interval_is_5_minutes ... ok
[INFO] [stdout] test error::tests::debug_format_includes_variant_name ... ok
[INFO] [stdout] test error::tests::display_init ... ok
[INFO] [stdout] test error::tests::display_pool_full ... ok
[INFO] [stdout] test config::tests::test_rate_limit_config_nested_in_scatter_proxy_config ... ok
[INFO] [stdout] test error::tests::error_trait_is_implemented ... ok
[INFO] [stdout] test error::tests::display_unknown_host ... ok
[INFO] [stdout] test error::tests::display_timeout ... ok
[INFO] [stdout] test error::tests::timeout_exact_seconds_formatting ... ok
[INFO] [stdout] test error::tests::timeout_sub_second_formatting ... ok
[INFO] [stdout] test health::tests::affinity_reflects_window ... ok
[INFO] [stdout] test health::tests::avg_latency_ms_global_average ... ok
[INFO] [stdout] test health::tests::avg_latency_ms_zero_when_no_data ... ok
[INFO] [stdout] test health::tests::avg_success_rate_for_host_averages_across_proxies ... ok
[INFO] [stdout] test health::tests::avg_latency_ms_ignores_failures ... ok
[INFO] [stdout] test health::tests::affinity_returns_half_when_unknown ... ok
[INFO] [stdout] test health::tests::default_uses_window_size_30 ... ok
[INFO] [stdout] test health::tests::consecutive_fails_increments ... ok
[INFO] [stdout] test health::tests::get_all_stats_returns_empty_when_no_data ... ok
[INFO] [stdout] test health::tests::consecutive_fails_for_unknown_is_zero ... ok
[INFO] [stdout] test health::tests::get_all_stats_contains_all_pairs ... ok
[INFO] [stdout] test config::tests::test_scatter_proxy_config_defaults ... ok
[INFO] [stdout] test health::tests::get_stats_returns_none_for_unknown_pair ... ok
[INFO] [stdout] test health::tests::minutes_since_last_success_returns_max_when_only_failures ... ok
[INFO] [stdout] test health::tests::global_health_aggregates_across_hosts ... ok
[INFO] [stdout] test health::tests::minutes_since_last_success_returns_max_when_unknown ... ok
[INFO] [stdout] test health::tests::record_failure_updates_stats ... ok
[INFO] [stdout] test health::tests::restore_approximates_window ... ok
[INFO] [stdout] test health::tests::record_success_updates_stats ... ok
[INFO] [stdout] test health::tests::seconds_since_last_access_is_small_after_record ... ok
[INFO] [stdout] test health::tests::seconds_since_last_access_returns_max_when_unknown ... ok
[INFO] [stdout] test health::tests::separate_pairs_are_independent ... ok
[INFO] [stdout] test health::tests::global_health_ignores_other_proxies ... ok
[INFO] [stdout] test health::tests::global_health_returns_half_when_unknown ... ok
[INFO] [stdout] test health::tests::sliding_window_evicts_oldest ... ok
[INFO] [stdout] test classifier::tests::verdict_debug_format ... ok
[INFO] [stdout] test health::tests::global_success_rate_for_proxy_zero_when_unknown ... ok
[INFO] [stdout] test health::tests::latency_average_across_multiple_successes ... ok
[INFO] [stdout] test health::tests::minutes_since_last_success_is_small_after_success ... ok
[INFO] [stdout] test health::tests::restore_recreates_entry ... ok
[INFO] [stdout] test health::tests::global_success_rate_for_proxy_lifetime_rate ... ok
[INFO] [stdout] test health::tests::avg_success_rate_for_host_returns_half_when_unknown ... ok
[INFO] [stdout] test health::tests::success_resets_consecutive_fails ... ok
[INFO] [stdout] test health::tests::many_records_beyond_window ... ok
[INFO] [stdout] test health::tests::total_fail_accumulates_across_all_pairs ... ok
[INFO] [stdout] test health::tests::restore_with_zero_success_preserves_zero_latency ... ok
[INFO] [stdout] test health::tests::total_samples_for_proxy_ignores_other_proxies ... ok
[INFO] [stdout] test health::tests::total_samples_for_proxy_zero_when_unknown ... ok
[INFO] [stdout] test health::tests::total_success_accumulates_across_all_pairs ... ok
[INFO] [stdout] test health::tests::window_size_one ... ok
[INFO] [stdout] test health::tests::window_size_respected ... ok
[INFO] [stdout] test metrics::tests::default_max_window_is_60s ... ok
[INFO] [stdout] test metrics::tests::custom_max_window ... ok
[INFO] [stdout] test metrics::tests::old_entries_are_pruned ... ok
[INFO] [stdout] test metrics::tests::pool_metrics_default_is_zeroed ... ok
[INFO] [stdout] test metrics::tests::proxy_host_stats_default ... ok
[INFO] [stdout] test metrics::tests::proxy_host_stats_serde_round_trip ... ok
[INFO] [stdout] test metrics::tests::throughput_only_counts_events_within_requested_window ... ok
[INFO] [stdout] test metrics::tests::new_tracker_is_empty ... ok
[INFO] [stdout] test metrics::tests::throughput_with_zero_window_is_zero ... ok
[INFO] [stdout] test metrics::tests::pool_metrics_is_clone ... ok
[INFO] [stdout] test health::tests::seconds_since_last_access_updates_on_success_too ... ok
[INFO] [stdout] test metrics::tests::window_larger_than_max_window_still_works ... ok
[INFO] [stdout] test metrics::tests::throughput_over_1s_window ... ok
[INFO] [stdout] test metrics::tests::throughput_over_10s_window ... ok
[INFO] [stdout] test metrics::tests::record_increases_count ... ok
[INFO] [stdout] test persist::tests::persisted_proxy_debug ... ok
[INFO] [stdout] test persist::tests::persisted_proxy_empty_hosts ... ok
[INFO] [stdout] test persist::tests::persisted_state_debug ... ok
[INFO] [stdout] test persist::tests::persisted_state_empty_proxies ... ok
[INFO] [stdout] test persist::tests::proxy_host_stats_serde_round_trip ... ok
[INFO] [stdout] test persist::tests::load_state_returns_none_for_missing_file ... ok
[INFO] [stdout] test persist::tests::persisted_state_serializes_and_deserializes ... ok
[INFO] [stdout] test persist::tests::load_state_returns_error_for_invalid_json ... ok
[INFO] [stdout] test persist::tests::save_state_is_atomic_no_tmp_left ... ok
[INFO] [stdout] test proxy::tests::get_client_different_proxies_get_different_clients ... ok
[INFO] [stdout] test proxy::tests::get_client_invalid_url_returns_error ... ok
[INFO] [stdout] test proxy::tests::get_state_returns_unknown_for_missing_proxy ... ok
[INFO] [stdout] test health::tests::total_samples_for_proxy_counts_across_hosts ... ok
[INFO] [stdout] test proxy::tests::fetch_and_add_with_empty_sources ... ok
[INFO] [stdout] test proxy::tests::normalize_bare_ip_port_prefer_remote_dns ... ok
[INFO] [stdout] test persist::tests::save_and_load_empty_state ... ok
[INFO] [stdout] test proxy::tests::fetch_and_add_with_unreachable_source_logs_error ... ok
[INFO] [stdout] test persist::tests::save_and_load_multiple_hosts_per_proxy ... ok
[INFO] [stdout] test proxy::tests::all_proxy_urls_returns_all ... ok
[INFO] [stdout] test persist::tests::save_state_sets_saved_at_iso8601 ... ok
[INFO] [stdout] test proxy::tests::normalize_comment_with_leading_whitespace ... ok
[INFO] [stdout] test proxy::tests::get_client_creates_and_caches ... ok
[INFO] [stdout] test proxy::tests::normalize_bare_ip_port_local_dns ... ok
[INFO] [stdout] test proxy::tests::get_active_proxies_excludes_dead ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5_to_socks5h_when_prefer_remote ... ok
[INFO] [stdout] test proxy::tests::normalize_empty_string ... ok
[INFO] [stdout] test metrics::tests::concurrent_access_does_not_panic ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5h_unchanged ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5h_unchanged_no_prefer ... ok
[INFO] [stdout] test proxy::tests::normalize_http_proxy_passed_through ... ok
[INFO] [stdout] test persist::tests::save_state_overwrites_existing ... ok
[INFO] [stdout] test proxy::tests::normalize_https_proxy_passed_through ... ok
[INFO] [stdout] test proxy::tests::normalize_ipv6_bare ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5_stays_when_not_prefer_remote ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5_uppercase_not_matched_becomes_bare ... ok
[INFO] [stdout] test proxy::tests::normalize_socks5_with_auth ... ok
[INFO] [stdout] test proxy::tests::normalize_trims_whitespace ... ok
[INFO] [stdout] test proxy::tests::normalize_whitespace_only ... ok
[INFO] [stdout] test proxy::tests::proxy_counts_empty ... ok
[INFO] [stdout] test persist::tests::save_state_produces_pretty_json ... ok
[INFO] [stdout] test proxy::tests::proxy_counts_correct ... ok
[INFO] [stdout] test proxy::tests::proxy_state_clone_and_eq ... ok
[INFO] [stdout] test proxy::tests::proxy_state_debug ... ok
[INFO] [stdout] test proxy::tests::set_and_get_state ... ok
[INFO] [stdout] test proxy::tests::set_state_on_missing_proxy_is_noop ... ok
[INFO] [stdout] test proxy::tests::total_count_tracks_insertions ... ok
[INFO] [stdout] test rate_limit::tests::available_when_never_accessed ... ok
[INFO] [stdout] test rate_limit::tests::completely_separate_pairs_are_independent ... ok
[INFO] [stdout] test rate_limit::tests::different_proxies_same_host_are_independent ... ok
[INFO] [stdout] test rate_limit::tests::interval_for_uses_default_when_no_override ... ok
[INFO] [stdout] test rate_limit::tests::interval_for_uses_override_when_present ... ok
[INFO] [stdout] test rate_limit::tests::mark_and_check_many_pairs ... ok
[INFO] [stdout] test rate_limit::tests::multiple_overrides_each_respected ... ok
[INFO] [stdout] test rate_limit::tests::new_limiter_has_no_entries ... ok
[INFO] [stdout] test rate_limit::tests::new_limiter_stores_default_interval ... ok
[INFO] [stdout] test proxy::tests::normalize_comment_line ... ok
[INFO] [stdout] test rate_limit::tests::new_limiter_stores_host_overrides ... ok
[INFO] [stdout] test persist::tests::save_and_load_round_trip ... ok
[INFO] [stdout] test rate_limit::tests::not_available_immediately_after_mark ... ok
[INFO] [stdout] test rate_limit::tests::same_proxy_different_hosts_are_independent ... ok
[INFO] [stdout] test rate_limit::tests::works_with_default_rate_limit_config ... ok
[INFO] [stdout] test rate_limit::tests::zero_interval_always_available ... ok
[INFO] [stdout] test rate_limit::tests::zero_override_always_available ... ok
[INFO] [stdout] test score::tests::adaptive_k_boundary_at_11_proxies ... ok
[INFO] [stdout] test persist::tests::save_state_sets_version_1 ... ok
[INFO] [stdout] test score::tests::adaptive_k_boundary_at_3_proxies ... ok
[INFO] [stdout] test score::tests::adaptive_k_base_k_of_one ... ok
[INFO] [stdout] test score::tests::adaptive_k_boundary_at_7_proxies ... ok
[INFO] [stdout] test score::tests::adaptive_k_large_pool_high_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_large_pool_low_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_large_pool_moderate_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_medium_pool_low_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_medium_pool_moderate_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_never_returns_more_than_available ... ok
[INFO] [stdout] test score::tests::adaptive_k_one_available ... ok
[INFO] [stdout] test score::tests::adaptive_k_small_pool_high_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_small_pool_low_success ... ok
[INFO] [stdout] test score::tests::adaptive_k_two_available ... ok
[INFO] [stdout] test score::tests::adaptive_k_zero_available ... ok
[INFO] [stdout] test score::tests::deterministic_score_no_jitter ... ok
[INFO] [stdout] test score::tests::score_bounded_in_reasonable_range ... ok
[INFO] [stdout] test score::tests::score_for_unknown_pair_uses_priors ... ok
[INFO] [stdout] test task::tests::mark_completed_increments_counter ... ok
[INFO] [stdout] test score::tests::score_weights_sum_correctly ... ok
[INFO] [stdout] test score::tests::score_mixed_history ... ok
[INFO] [stdout] test score::tests::score_recency_decays_with_time ... ok
[INFO] [stdout] test task::tests::new_pool_has_zero_pending ... ok
[INFO] [stdout] test task::tests::pick_next_returns_none_when_empty ... ok
[INFO] [stdout] test score::tests::score_uses_global_health_for_unknown_host ... ok
[INFO] [stdout] test task::tests::pick_next_selects_first_non_skipped_preserves_order ... ok
[INFO] [stdout] test task::tests::pick_next_returns_fifo_order ... ok
[INFO] [stdout] test task::tests::push_back_requeues_to_tail ... ok
[INFO] [stdout] test task::tests::pick_next_returns_none_when_all_hosts_skipped ... ok
[INFO] [stdout] test task::tests::pool_with_zero_capacity_rejects_everything ... ok
[INFO] [stdout] test task::tests::scatter_response_debug ... ok
[INFO] [stdout] test task::tests::pick_next_skips_circuit_broken_hosts ... ok
[INFO] [stdout] test task::tests::pool_allows_try_submit_after_mark_completed_frees_space ... ok
[INFO] [stdout] test task::tests::task_handle_returns_502_when_sender_dropped ... ok
[INFO] [stdout] test task::tests::submit_batch_processes_all ... ok
[INFO] [stdout] test task::tests::task_entry_has_correct_defaults_on_try_submit ... ok
[INFO] [stdout] test task::tests::task_handle_with_timeout_ok ... ok
[INFO] [stdout] test task::tests::task_handle_receives_success ... ok
[INFO] [stdout] test task::tests::try_submit_batch_adds_all_tasks ... ok
[INFO] [stdout] test task::tests::try_submit_batch_empty_vec_is_ok ... ok
[INFO] [stdout] test task::tests::try_submit_batch_atomic_rejection_when_pool_full ... ok
[INFO] [stdout] test task::tests::try_submit_assigns_incrementing_ids ... ok
[INFO] [stdout] test task::tests::try_submit_extracts_host_from_url ... ok
[INFO] [stdout] test task::tests::try_submit_increments_pending_count ... ok
[INFO] [stdout] test task::tests::try_submit_returns_pool_full_when_at_capacity ... ok
[INFO] [stdout] test persist::tests::save_state_merges_health_and_proxy_states ... ok
[INFO] [stdout] test score::tests::score_is_higher_for_successful_proxy ... ok
[INFO] [stdout] test rate_limit::tests::override_host_has_longer_cooldown ... ok
[INFO] [stdout] test task::tests::delayed_task_promotes_when_ready ... ok
[INFO] [stdout] test task::tests::notified_wakes_on_push_back ... ok
[INFO] [stdout] test task::tests::notified_wakes_on_try_submit ... ok
[INFO] [stdout] test rate_limit::tests::available_after_interval_elapses ... ok
[INFO] [stdout] test task::tests::submit_blocks_then_proceeds_after_mark_completed ... ok
[INFO] [stdout] test task::tests::submit_timeout_returns_err_on_expiry ... ok
[INFO] [stdout] test task::tests::task_handle_with_timeout_expires ... ok
[INFO] [stdout] test rate_limit::tests::mark_resets_cooldown ... ok
[INFO] [stdout] test rate_limit::tests::multiple_marks_updates_timestamp ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 210 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests scatter_proxy
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/router.rs - router::ScatterProxyRouter (line 29) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fceb55fb8ee6702eacb72e6eec8304dd726122cde3398e374741bb5a346789e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fceb55fb8ee6702eacb72e6eec8304dd726122cde3398e374741bb5a346789e7", kill_on_drop: false }`
[INFO] [stdout] fceb55fb8ee6702eacb72e6eec8304dd726122cde3398e374741bb5a346789e7
