[INFO] cloning repository https://github.com/umair68/tracker-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/umair68/tracker-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fumair68%2Ftracker-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fumair68%2Ftracker-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 73c406f195488f07b90fbf863c678c4c3b767c1d
[INFO] checking umair68/tracker-rs against try#c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f for 2025-12-16-next-solver-global
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fumair68%2Ftracker-rs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/umair68/tracker-rs
[INFO] finished tweaking git repo https://github.com/umair68/tracker-rs
[INFO] tweaked toml for git repo https://github.com/umair68/tracker-rs written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/umair68/tracker-rs on toolchain c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/umair68/tracker-rs 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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking umair68/tracker-rs against try#c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f for 2025-12-16-next-solver-global
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fumair68%2Ftracker-rs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/umair68/tracker-rs
[INFO] finished tweaking git repo https://github.com/umair68/tracker-rs
[INFO] tweaked toml for git repo https://github.com/umair68/tracker-rs written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/umair68/tracker-rs on toolchain c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/umair68/tracker-rs 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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2aeea5300ca5fa5c24d99fc9c239b363042b185f06181b65d0e6c9e9374b71c5
[INFO] running `Command { std: "docker" "start" "-a" "2aeea5300ca5fa5c24d99fc9c239b363042b185f06181b65d0e6c9e9374b71c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2aeea5300ca5fa5c24d99fc9c239b363042b185f06181b65d0e6c9e9374b71c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2aeea5300ca5fa5c24d99fc9c239b363042b185f06181b65d0e6c9e9374b71c5", kill_on_drop: false }`
[INFO] [stdout] 2aeea5300ca5fa5c24d99fc9c239b363042b185f06181b65d0e6c9e9374b71c5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 301ad03b15ae8ff1c6b1c1a7164913b79897a96f49cfd71c35b710d20ee02759
[INFO] running `Command { std: "docker" "start" "-a" "301ad03b15ae8ff1c6b1c1a7164913b79897a96f49cfd71c35b710d20ee02759", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]    Compiling cc v1.2.46
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking iri-string v0.7.9
[INFO] [stderr]     Checking rustls-pki-types v1.13.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking axum-core v0.5.5
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking hyper-util v0.1.18
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking axum v0.8.6
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]     Checking tracker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/stores/peer_store.rs:151:29
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/stores/peer_store.rs:151:29
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encoder::BencodeEncode`
[INFO] [stdout]  --> src/bencode/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use encoder::BencodeEncode;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::build_announce_response`
[INFO] [stdout]  --> src/bencode/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use response::build_announce_response;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WalOperation` and `Wal`
[INFO] [stdout]  --> src/wal/mod.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use wal::{Wal, WalOperation};
[INFO] [stdout]   |               ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/stores/peer_store.rs:151:29
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encoder::BencodeEncode`
[INFO] [stdout]  --> src/bencode/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use encoder::BencodeEncode;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `response::build_announce_response`
[INFO] [stdout]  --> src/bencode/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use response::build_announce_response;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `WalOperation` and `Wal`
[INFO] [stdout]  --> src/wal/mod.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use wal::{Wal, WalOperation};
[INFO] [stdout]   |               ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/stores/peer_store.rs:151:29
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tower::Service`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use tower::Service;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tower::Service`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use tower::Service;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MissingParameter`, `DuplicatePeer`, and `AnnounceIntervalTooShort` are never constructed
[INFO] [stdout]   --> src/core/error.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum AnnounceError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     MissingParameter(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     DuplicatePeer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     AnnounceIntervalTooShort,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnnounceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameter`, `WalError`, and `InternalError` are never constructed
[INFO] [stdout]    --> src/core/error.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum AdminError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     InvalidParameter(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     WalError(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AdminError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameter` and `InternalError` are never constructed
[INFO] [stdout]    --> src/core/error.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub enum BlacklistError {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 159 |     InvalidParameter(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlacklistError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InternalError` is never constructed
[INFO] [stdout]    --> src/core/error.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub enum MonitoringError {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 195 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonitoringError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SuspiciousUploadSpeed`, `SuspiciousDownloadSpeed`, `SuspiciousRatio`, and `GhostSeeder` are never constructed
[INFO] [stdout]    --> src/core/error.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub enum AntiCheatError {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 218 |     SuspiciousUploadSpeed { speed_mbps: f64, max_mbps: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     SuspiciousDownloadSpeed { speed_mbps: f64, max_mbps: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     SuspiciousRatio { ratio: f64, max_ratio: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     GhostSeeder { uploaded: u64, min_upload: u64 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AntiCheatError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidationError` is never used
[INFO] [stdout]    --> src/core/error.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub enum ValidationError {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_freeleech` is never read
[INFO] [stdout]  --> src/models/torrent.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Torrent {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub is_freeleech: bool,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Torrent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/stores/user_cache.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl UserCache {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/stores/torrent_cache.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TorrentCache {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `clear` are never used
[INFO] [stdout]   --> src/security/ip_blacklist.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl IpBlacklist {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn clear(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `clear` are never used
[INFO] [stdout]   --> src/security/client_blacklist.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ClientBlacklist {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn clear(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup_old_entries` is never used
[INFO] [stdout]   --> src/security/rate_limiter.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl RateLimiter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn cleanup_old_entries(&self, current_time: i64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_list` is never used
[INFO] [stdout]   --> src/bencode/encoder.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn encode_list<T: BencodeEncode>(items: &[T], buf: &mut Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_dict` is never used
[INFO] [stdout]   --> src/bencode/encoder.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn encode_dict<K: BencodeEncode, V: BencodeEncode>(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_page`, `per_page`, `total_torrents`, and `total_users` are never read
[INFO] [stdout]   --> src/api/client.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ApiPagination {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 25 |     pub current_page: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub per_page: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |     pub total_torrents: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub total_users: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiPagination` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `seeders` and `leechers` are never read
[INFO] [stdout]   --> src/api/client.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ApiTorrent {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub seeders: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 38 |     #[serde(default)]
[INFO] [stdout] 39 |     pub leechers: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiTorrent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `has_freeleech` is never read
[INFO] [stdout]   --> src/api/client.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ApiUser {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub has_freeleech: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiUser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpdateData` is never constructed
[INFO] [stdout]   --> src/api/client.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct UpdateData {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerUpdate` is never constructed
[INFO] [stdout]   --> src/api/client.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct PeerUpdate {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TorrentUpdate` is never constructed
[INFO] [stdout]   --> src/api/client.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct TorrentUpdate {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `upload_peer_data` is never used
[INFO] [stdout]    --> src/api/client.rs:161:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub async fn upload_peer_data(&self, data: UpdateData) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_bytes` is never used
[INFO] [stdout]   --> src/utils/hex.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn hex_to_bytes(hex_str: &str) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_to_hex` is never used
[INFO] [stdout]   --> src/utils/hex.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn bytes_to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_timestamp_millis` is never used
[INFO] [stdout]   --> src/utils/time.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn current_timestamp_millis() -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_seconds` is never used
[INFO] [stdout]   --> src/utils/time.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn elapsed_seconds(start: i64, end: i64) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_expired` is never used
[INFO] [stdout]   --> src/utils/time.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn is_expired(timestamp: i64, timeout: i64, current_time: i64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MissingParameter`, `DuplicatePeer`, and `AnnounceIntervalTooShort` are never constructed
[INFO] [stdout]   --> src/core/error.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum AnnounceError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     MissingParameter(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     DuplicatePeer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     AnnounceIntervalTooShort,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnnounceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameter`, `WalError`, and `InternalError` are never constructed
[INFO] [stdout]    --> src/core/error.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum AdminError {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     InvalidParameter(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     WalError(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AdminError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidParameter` and `InternalError` are never constructed
[INFO] [stdout]    --> src/core/error.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub enum BlacklistError {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 159 |     InvalidParameter(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlacklistError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InternalError` is never constructed
[INFO] [stdout]    --> src/core/error.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub enum MonitoringError {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 195 |     InternalError(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MonitoringError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SuspiciousUploadSpeed`, `SuspiciousDownloadSpeed`, `SuspiciousRatio`, and `GhostSeeder` are never constructed
[INFO] [stdout]    --> src/core/error.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub enum AntiCheatError {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 218 |     SuspiciousUploadSpeed { speed_mbps: f64, max_mbps: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     SuspiciousDownloadSpeed { speed_mbps: f64, max_mbps: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     SuspiciousRatio { ratio: f64, max_ratio: f64 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     GhostSeeder { uploaded: u64, min_upload: u64 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AntiCheatError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidationError` is never used
[INFO] [stdout]    --> src/core/error.rs:231:10
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub enum ValidationError {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/stores/user_cache.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl UserCache {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/stores/torrent_cache.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TorrentCache {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_page`, `per_page`, `total_torrents`, and `total_users` are never read
[INFO] [stdout]   --> src/api/client.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ApiPagination {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 25 |     pub current_page: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub per_page: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |     pub total_torrents: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub total_users: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiPagination` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `seeders` and `leechers` are never read
[INFO] [stdout]   --> src/api/client.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ApiTorrent {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub seeders: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 38 |     #[serde(default)]
[INFO] [stdout] 39 |     pub leechers: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiTorrent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `has_freeleech` is never read
[INFO] [stdout]   --> src/api/client.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ApiUser {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub has_freeleech: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiUser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `upload_peer_data` is never used
[INFO] [stdout]    --> src/api/client.rs:161:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub async fn upload_peer_data(&self, data: UpdateData) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 37s
[INFO] running `Command { std: "docker" "inspect" "301ad03b15ae8ff1c6b1c1a7164913b79897a96f49cfd71c35b710d20ee02759", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "301ad03b15ae8ff1c6b1c1a7164913b79897a96f49cfd71c35b710d20ee02759", kill_on_drop: false }`
[INFO] [stdout] 301ad03b15ae8ff1c6b1c1a7164913b79897a96f49cfd71c35b710d20ee02759
