[INFO] cloning repository https://github.com/a14e/droxporter [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/a14e/droxporter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa14e%2Fdroxporter", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa14e%2Fdroxporter'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b644276d78d4ab8536fd2313134eecf3593f3efb [INFO] testing a14e/droxporter against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fa14e%2Fdroxporter" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/a14e/droxporter [INFO] finished tweaking git repo https://github.com/a14e/droxporter [INFO] tweaked toml for git repo https://github.com/a14e/droxporter written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/a14e/droxporter on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/a14e/droxporter 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded poem-derive v1.3.59 [INFO] [stderr] Downloaded wildmatch v2.3.4 [INFO] [stderr] Downloaded rfc7239 v0.1.1 [INFO] [stderr] Downloaded mimalloc-rust v0.2.1 [INFO] [stderr] Downloaded anyhow v1.0.89 [INFO] [stderr] Downloaded poem v1.3.59 [INFO] [stderr] Downloaded mimalloc-rust-sys v1.7.9-source [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0953e8ee57d34d5762d2799ec70d565e77d8789e8db46ef4e912c8390863f778 [INFO] running `Command { std: "docker" "start" "-a" "0953e8ee57d34d5762d2799ec70d565e77d8789e8db46ef4e912c8390863f778", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0953e8ee57d34d5762d2799ec70d565e77d8789e8db46ef4e912c8390863f778", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0953e8ee57d34d5762d2799ec70d565e77d8789e8db46ef4e912c8390863f778", kill_on_drop: false }` [INFO] [stdout] 0953e8ee57d34d5762d2799ec70d565e77d8789e8db46ef4e912c8390863f778 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2ea5fa8cd743a1460b39e4aa40b9efb3c34f358e8c6e89c61f6e605e54084107 [INFO] running `Command { std: "docker" "start" "-a" "2ea5fa8cd743a1460b39e4aa40b9efb3c34f358e8c6e89c61f6e605e54084107", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling bytes v1.7.2 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling cc v1.1.21 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling toml_datetime v0.6.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling protobuf v2.28.0 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling rfc7239 v0.1.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling ipnet v2.10.0 [INFO] [stderr] Compiling wildmatch v2.3.4 [INFO] [stderr] Compiling url v2.5.2 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling toml_edit v0.20.2 [INFO] [stderr] Compiling headers-core v0.2.0 [INFO] [stderr] Compiling headers v0.3.9 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling mimalloc-rust-sys v1.7.9-source [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling mio v1.0.2 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling nix v0.27.1 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling sysinfo v0.28.4 [INFO] [stderr] Compiling mimalloc-rust v0.2.1 [INFO] [stderr] Compiling proc-macro-crate v2.0.2 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling poem-derive v1.3.59 [INFO] [stderr] Compiling async-trait v0.1.82 [INFO] [stderr] Compiling tokio v1.40.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling prometheus v0.13.4 [INFO] [stderr] Compiling tokio-util v0.7.12 [INFO] [stderr] Compiling tokio-rustls v0.24.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling tracing-serde v0.1.3 [INFO] [stderr] Compiling humantime-serde v1.1.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling hyper v0.14.30 [INFO] [stderr] Compiling tracing-appender v0.2.3 [INFO] [stderr] Compiling hyper-rustls v0.24.2 [INFO] [stderr] Compiling poem v1.3.59 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling droxporter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: fields `types`, `interval`, and `enabled` are never read [INFO] [stdout] --> src/config/config_model.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 278 | pub struct LoadSettings { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 279 | #[serde(default)] [INFO] [stdout] 280 | pub types: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub interval: std::time::Duration, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 286 | #[serde(default)] [INFO] [stdout] 287 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LoadSettings` has a derived impl for the trait `Clone`, 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: struct `DropletMetricMetaDefault` is never constructed [INFO] [stdout] --> src/client/do_json_protocol.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct DropletMetricMetaDefault { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppMetricMetaDefault` is never constructed [INFO] [stdout] --> src/client/do_json_protocol.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct AppMetricMetaDefault { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_droplet_load` is never used [INFO] [stdout] --> src/client/do_client.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait DigitalOceanClient: Send + Sync { [INFO] [stdout] | ------------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 55 | async fn get_droplet_load(&self, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ClientLoadType` is never used [INFO] [stdout] --> src/client/do_client.rs:94:10 [INFO] [stdout] | [INFO] [stdout] 94 | pub enum ClientLoadType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `DropletLoad1`, `DropletLoad5`, and `DropletLoad15` are never constructed [INFO] [stdout] --> src/client/do_client.rs:278:5 [INFO] [stdout] | [INFO] [stdout] 267 | pub enum RequestType { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 278 | DropletLoad1, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 279 | DropletLoad5, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 280 | DropletLoad15, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RequestType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `limit_time_interval` is never read [INFO] [stdout] --> src/client/rate_limiter.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct RateLimiter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 60 | limit_time_interval: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimiter` 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 `run_load_metrics_loading` is never used [INFO] [stdout] --> src/metrics/jobs_scheduler.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub trait MetricsScheduler: Send + Sync { [INFO] [stdout] | ---------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 24 | async fn run_load_metrics_loading(&self) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `locked` is never read [INFO] [stdout] --> src/metrics/droplet_store.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct BasicDropletInfo { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub locked: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BasicDropletInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_load_metrics` is never used [INFO] [stdout] --> src/metrics/droplet_metrics_loader.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait DropletMetricsService: Send + Sync { [INFO] [stdout] | --------------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | async fn load_load_metrics(&self) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `droplet_load` is never read [INFO] [stdout] --> src/metrics/droplet_metrics_loader.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 45 | struct LoaderDropletMetrics { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | droplet_load: prometheus::GaugeVec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LoaderDropletMetrics` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `configs` is never read [INFO] [stdout] --> src/metrics/app_metrics_loader.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct AppMetricsServiceImpl { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | configs: &'static AppSettings, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppMetricsServiceImpl` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.71s [INFO] running `Command { std: "docker" "inspect" "2ea5fa8cd743a1460b39e4aa40b9efb3c34f358e8c6e89c61f6e605e54084107", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ea5fa8cd743a1460b39e4aa40b9efb3c34f358e8c6e89c61f6e605e54084107", kill_on_drop: false }` [INFO] [stdout] 2ea5fa8cd743a1460b39e4aa40b9efb3c34f358e8c6e89c61f6e605e54084107 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 938f7559b55cd581080c9da387578d0d75c7afa8f1c7a66a0e7d64a7c3b9a1b0 [INFO] running `Command { std: "docker" "start" "-a" "938f7559b55cd581080c9da387578d0d75c7afa8f1c7a66a0e7d64a7c3b9a1b0", kill_on_drop: false }` [INFO] [stderr] Compiling droxporter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client/key_manager.rs:326:13 [INFO] [stdout] | [INFO] [stdout] 326 | let mut configs: &'static mut _ = Box::leak(Box::new(AppSettings::default())); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client/key_manager.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | let mut configs = Box::leak(Box::new(AppSettings::default())); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client/key_manager.rs:398:13 [INFO] [stdout] | [INFO] [stdout] 398 | let mut configs = Box::leak(Box::new(AppSettings::default())); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `types`, `interval`, and `enabled` are never read [INFO] [stdout] --> src/config/config_model.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 278 | pub struct LoadSettings { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 279 | #[serde(default)] [INFO] [stdout] 280 | pub types: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub interval: std::time::Duration, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 286 | #[serde(default)] [INFO] [stdout] 287 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LoadSettings` has a derived impl for the trait `Clone`, 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: struct `DropletMetricMetaDefault` is never constructed [INFO] [stdout] --> src/client/do_json_protocol.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct DropletMetricMetaDefault { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppMetricMetaDefault` is never constructed [INFO] [stdout] --> src/client/do_json_protocol.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct AppMetricMetaDefault { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_droplet_load` is never used [INFO] [stdout] --> src/client/do_client.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait DigitalOceanClient: Send + Sync { [INFO] [stdout] | ------------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 55 | async fn get_droplet_load(&self, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ClientLoadType` is never used [INFO] [stdout] --> src/client/do_client.rs:94:10 [INFO] [stdout] | [INFO] [stdout] 94 | pub enum ClientLoadType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `DropletLoad1`, `DropletLoad5`, and `DropletLoad15` are never constructed [INFO] [stdout] --> src/client/do_client.rs:278:5 [INFO] [stdout] | [INFO] [stdout] 267 | pub enum RequestType { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 278 | DropletLoad1, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 279 | DropletLoad5, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 280 | DropletLoad15, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RequestType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `limit_time_interval` is never read [INFO] [stdout] --> src/client/rate_limiter.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct RateLimiter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 60 | limit_time_interval: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimiter` 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 `run_load_metrics_loading` is never used [INFO] [stdout] --> src/metrics/jobs_scheduler.rs:24:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub trait MetricsScheduler: Send + Sync { [INFO] [stdout] | ---------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 24 | async fn run_load_metrics_loading(&self) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `locked` is never read [INFO] [stdout] --> src/metrics/droplet_store.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct BasicDropletInfo { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub locked: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BasicDropletInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_load_metrics` is never used [INFO] [stdout] --> src/metrics/droplet_metrics_loader.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait DropletMetricsService: Send + Sync { [INFO] [stdout] | --------------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | async fn load_load_metrics(&self) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `droplet_load` is never read [INFO] [stdout] --> src/metrics/droplet_metrics_loader.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 45 | struct LoaderDropletMetrics { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 50 | droplet_load: prometheus::GaugeVec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LoaderDropletMetrics` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `configs` is never read [INFO] [stdout] --> src/metrics/app_metrics_loader.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct AppMetricsServiceImpl { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | configs: &'static AppSettings, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppMetricsServiceImpl` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.04s [INFO] running `Command { std: "docker" "inspect" "938f7559b55cd581080c9da387578d0d75c7afa8f1c7a66a0e7d64a7c3b9a1b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "938f7559b55cd581080c9da387578d0d75c7afa8f1c7a66a0e7d64a7c3b9a1b0", kill_on_drop: false }` [INFO] [stdout] 938f7559b55cd581080c9da387578d0d75c7afa8f1c7a66a0e7d64a7c3b9a1b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ff9b41487973c8187ff865d53a8095259da497e3e3168e8f8a00677841543eb4 [INFO] running `Command { std: "docker" "start" "-a" "ff9b41487973c8187ff865d53a8095259da497e3e3168e8f8a00677841543eb4", kill_on_drop: false }` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/client/key_manager.rs:326:13 [INFO] [stderr] | [INFO] [stderr] 326 | let mut configs: &'static mut _ = Box::leak(Box::new(AppSettings::default())); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/client/key_manager.rs:380:13 [INFO] [stderr] | [INFO] [stderr] 380 | let mut configs = Box::leak(Box::new(AppSettings::default())); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/client/key_manager.rs:398:13 [INFO] [stderr] | [INFO] [stderr] 398 | let mut configs = Box::leak(Box::new(AppSettings::default())); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: fields `types`, `interval`, and `enabled` are never read [INFO] [stderr] --> src/config/config_model.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 278 | pub struct LoadSettings { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 279 | #[serde(default)] [INFO] [stderr] 280 | pub types: Vec, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | pub interval: std::time::Duration, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 286 | #[serde(default)] [INFO] [stderr] 287 | pub enabled: bool, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LoadSettings` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `DropletMetricMetaDefault` is never constructed [INFO] [stderr] --> src/client/do_json_protocol.rs:102:12 [INFO] [stderr] | [INFO] [stderr] 102 | pub struct DropletMetricMetaDefault { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `AppMetricMetaDefault` is never constructed [INFO] [stderr] --> src/client/do_json_protocol.rs:133:12 [INFO] [stderr] | [INFO] [stderr] 133 | pub struct AppMetricMetaDefault { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_droplet_load` is never used [INFO] [stderr] --> src/client/do_client.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 16 | pub trait DigitalOceanClient: Send + Sync { [INFO] [stderr] | ------------------ method in this trait [INFO] [stderr] ... [INFO] [stderr] 55 | async fn get_droplet_load(&self, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `ClientLoadType` is never used [INFO] [stderr] --> src/client/do_client.rs:94:10 [INFO] [stderr] | [INFO] [stderr] 94 | pub enum ClientLoadType { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `DropletLoad1`, `DropletLoad5`, and `DropletLoad15` are never constructed [INFO] [stderr] --> src/client/do_client.rs:278:5 [INFO] [stderr] | [INFO] [stderr] 267 | pub enum RequestType { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 278 | DropletLoad1, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 279 | DropletLoad5, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 280 | DropletLoad15, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RequestType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `limit_time_interval` is never read [INFO] [stderr] --> src/client/rate_limiter.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 56 | pub struct RateLimiter { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 60 | limit_time_interval: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RateLimiter` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `run_load_metrics_loading` is never used [INFO] [stderr] --> src/metrics/jobs_scheduler.rs:24:14 [INFO] [stderr] | [INFO] [stderr] 17 | pub trait MetricsScheduler: Send + Sync { [INFO] [stderr] | ---------------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 24 | async fn run_load_metrics_loading(&self) -> anyhow::Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `locked` is never read [INFO] [stderr] --> src/metrics/droplet_store.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct BasicDropletInfo { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 27 | pub locked: bool, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BasicDropletInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `load_load_metrics` is never used [INFO] [stderr] --> src/metrics/droplet_metrics_loader.rs:17:14 [INFO] [stderr] | [INFO] [stderr] 12 | pub trait DropletMetricsService: Send + Sync { [INFO] [stderr] | --------------------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 17 | async fn load_load_metrics(&self) -> anyhow::Result<()>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `droplet_load` is never read [INFO] [stderr] --> src/metrics/droplet_metrics_loader.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 45 | struct LoaderDropletMetrics { [INFO] [stderr] | -------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 50 | droplet_load: prometheus::GaugeVec, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LoaderDropletMetrics` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `configs` is never read [INFO] [stderr] --> src/metrics/app_metrics_loader.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct AppMetricsServiceImpl { [INFO] [stderr] | --------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 24 | configs: &'static AppSettings, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AppMetricsServiceImpl` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `droxporter` (bin "droxporter" test) generated 15 warnings (run `cargo fix --bin "droxporter" --tests` to apply 3 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/droxporter-87558eb5d96bc148) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test client::do_json_protocol::deserialize_test::deserialize_app_metrics ... ok [INFO] [stdout] test client::do_json_protocol::deserialize_test::deserialize_apps_empty_response ... ok [INFO] [stdout] test client::do_json_protocol::deserialize_test::deserialize_droplet_metrics ... ok [INFO] [stdout] test client::do_json_protocol::deserialize_test::deserialize_apps ... ok [INFO] [stdout] test client::key_manager::key_manager::fallback_to_default_if_not_found ... ok [INFO] [stdout] test client::key_manager::key_manager::acquire_key ... ok [INFO] [stdout] test client::key_manager::key_manager::fallback_to_second_key_on_limits ... ok [INFO] [stdout] test client::do_json_protocol::deserialize_test::deserialize_droplets ... ok [INFO] [stdout] test client::rate_limiter::rate_limiter::dont_pass_on_exceeded_limit ... ok [INFO] [stdout] test client::rate_limiter::rate_limiter::pass_exceeded_after_timeout ... ok [INFO] [stdout] test client::rate_limiter::multi_limits::dont_pass_on_exceeded_small_limit ... ok [INFO] [stdout] test client::rate_limiter::multi_limits::pass_exceeded_after_timeout_big_limit ... ok [INFO] [stdout] test client::rate_limiter::multi_limits::pass_exceeded_after_timeout_small_limit ... ok [INFO] [stdout] test client::rate_limiter::multi_limits::dont_pass_on_exceeded_big_limit ... ok [INFO] [stdout] test client::rate_limiter::multi_limits::pass_values_under_limit ... ok [INFO] [stdout] test client::rate_limiter::rate_limiter::pass_values_under_limit ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ff9b41487973c8187ff865d53a8095259da497e3e3168e8f8a00677841543eb4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff9b41487973c8187ff865d53a8095259da497e3e3168e8f8a00677841543eb4", kill_on_drop: false }` [INFO] [stdout] ff9b41487973c8187ff865d53a8095259da497e3e3168e8f8a00677841543eb4