[INFO] cloning repository https://github.com/Duanpz/Cross_domain_finally
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Duanpz/Cross_domain_finally" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuanpz%2FCross_domain_finally", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuanpz%2FCross_domain_finally'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a4abaecb9cbe3952d71de1ca8b154dac01fcf7c9
[INFO] checking Duanpz/Cross_domain_finally against master#ff647322379c48947c196639599067665ff9eb88 for pr-151539-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuanpz%2FCross_domain_finally" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  33% (3337/9917)
Updating files:  34% (3372/9917)
Updating files:  35% (3471/9917)
Updating files:  35% (3514/9917)
Updating files:  35% (3515/9917)
Updating files:  36% (3571/9917)
Updating files:  37% (3670/9917)
Updating files:  37% (3685/9917)
Updating files:  37% (3752/9917)
Updating files:  38% (3769/9917)
Updating files:  39% (3868/9917)
Updating files:  40% (3967/9917)
Updating files:  40% (4031/9917)
Updating files:  41% (4066/9917)
Updating files:  42% (4166/9917)
Updating files:  42% (4259/9917)
Updating files:  43% (4265/9917)
Updating files:  44% (4364/9917)
Updating files:  44% (4445/9917)
Updating files:  45% (4463/9917)
Updating files:  45% (4532/9917)
Updating files:  46% (4562/9917)
Updating files:  46% (4612/9917)
Updating files:  47% (4661/9917)
Updating files:  47% (4680/9917)
Updating files:  47% (4691/9917)
Updating files:  48% (4761/9917)
Updating files:  48% (4773/9917)
Updating files:  49% (4860/9917)
Updating files:  49% (4917/9917)
Updating files:  50% (4959/9917)
Updating files:  51% (5058/9917)
Updating files:  52% (5157/9917)
Updating files:  53% (5257/9917)
Updating files:  54% (5356/9917)
Updating files:  55% (5455/9917)
Updating files:  56% (5554/9917)
Updating files:  57% (5653/9917)
Updating files:  57% (5739/9917)
Updating files:  58% (5752/9917)
Updating files:  59% (5852/9917)
Updating files:  60% (5951/9917)
Updating files:  61% (6050/9917)
Updating files:  62% (6149/9917)
Updating files:  62% (6219/9917)
Updating files:  63% (6248/9917)
Updating files:  64% (6347/9917)
Updating files:  65% (6447/9917)
Updating files:  65% (6472/9917)
Updating files:  66% (6546/9917)
Updating files:  67% (6645/9917)
Updating files:  68% (6744/9917)
Updating files:  68% (6764/9917)
Updating files:  69% (6843/9917)
Updating files:  70% (6942/9917)
Updating files:  70% (6996/9917)
Updating files:  71% (7042/9917)
Updating files:  72% (7141/9917)
Updating files:  73% (7240/9917)
Updating files:  74% (7339/9917)
Updating files:  74% (7405/9917)
Updating files:  75% (7438/9917)
Updating files:  76% (7537/9917)
Updating files:  77% (7637/9917)
Updating files:  78% (7736/9917)
Updating files:  79% (7835/9917)
Updating files:  80% (7934/9917)
Updating files:  81% (8033/9917)
Updating files:  82% (8132/9917)
Updating files:  83% (8232/9917)
Updating files:  84% (8331/9917)
Updating files:  85% (8430/9917)
Updating files:  86% (8529/9917)
Updating files:  87% (8628/9917)
Updating files:  88% (8727/9917)
Updating files:  88% (8809/9917)
Updating files:  89% (8827/9917)
Updating files:  90% (8926/9917)
Updating files:  91% (9025/9917)
Updating files:  92% (9124/9917)
Updating files:  92% (9198/9917)
Updating files:  93% (9223/9917)
Updating files:  94% (9322/9917)
Updating files:  95% (9422/9917)
Updating files:  96% (9521/9917)
Updating files:  96% (9548/9917)
Updating files:  97% (9620/9917)
Updating files:  97% (9700/9917)
Updating files:  98% (9719/9917)
Updating files:  99% (9818/9917)
Updating files: 100% (9917/9917)
Updating files: 100% (9917/9917), done.
[INFO] started tweaking git repo https://github.com/Duanpz/Cross_domain_finally
[INFO] finished tweaking git repo https://github.com/Duanpz/Cross_domain_finally
[INFO] tweaked toml for git repo https://github.com/Duanpz/Cross_domain_finally written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Duanpz/Cross_domain_finally on toolchain ff647322379c48947c196639599067665ff9eb88
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Duanpz/Cross_domain_finally 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" "+ff647322379c48947c196639599067665ff9eb88" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap v4.5.47
[INFO] [stderr]   Downloaded slog-envlogger v2.2.0
[INFO] [stderr]   Downloaded clap_builder v4.5.47
[INFO] [stderr]   Downloaded slog-term v2.9.2
[INFO] [stderr]   Downloaded term v1.1.0
[INFO] [stderr]   Downloaded slog v2.7.0
[INFO] [stderr]   Downloaded slog-stdlog v4.1.1
[INFO] [stderr]   Downloaded slog-scope v4.4.0
[INFO] [stderr]   Downloaded raft-proto v0.7.0
[INFO] [stderr]   Downloaded slog-async v2.8.0
[INFO] [stderr]   Downloaded protobuf-codegen v2.28.0
[INFO] [stderr]   Downloaded raft v0.7.0
[INFO] [stderr]   Downloaded unicode-width v0.2.1
[INFO] [stderr]   Downloaded protobuf-build v0.14.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31
[INFO] running `Command { std: "docker" "start" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31" "/opt/rustwide/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31" "/opt/rustwide/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling slog v2.7.0
[INFO] [stderr]     Checking clap_builder v4.5.47
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking deranged v0.5.3
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling slog-async v2.8.0
[INFO] [stderr]     Checking slog-scope v4.4.0
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking indexmap v1.9.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking term v1.1.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking slog-stdlog v4.1.1
[INFO] [stderr]    Compiling reed-solomon-erasure v6.0.0
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking time v0.3.43
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling tempfile v3.21.0
[INFO] [stderr]     Checking lru v0.7.8
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling protobuf-codegen v2.28.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling getset v0.1.6
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]    Compiling protobuf-build v0.14.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling raft-proto v0.7.0
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling pest v2.8.1
[INFO] [stderr]     Checking clap v4.5.47
[INFO] [stderr]    Compiling prost-types v0.12.6
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]    Compiling prost-build v0.12.6
[INFO] [stderr]    Compiling tonic-build v0.11.0
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]    Compiling chuangshi-common v0.1.0 (/opt/rustwide/workdir/chuangshi-common)
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking config v0.13.4
[INFO] [stderr]     Checking slog-term v2.9.2
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-io-timeout v1.2.1
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking slog-envlogger v2.2.0
[INFO] [stderr]     Checking raft v0.7.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking tonic v0.11.0
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> chuangshi-common/src/types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[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 imports: `DateTime` and `Utc`
[INFO] [stdout]  --> chuangshi-common/src/utils.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> chuangshi-common/src/types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[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 imports: `DateTime` and `Utc`
[INFO] [stdout]  --> chuangshi-common/src/utils.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking chuangshi-gmm v0.1.0 (/opt/rustwide/workdir/chuangshi-gmm)
[INFO] [stderr]     Checking chuangshi-dn v0.1.0 (/opt/rustwide/workdir/chuangshi-dn)
[INFO] [stderr]     Checking chuangshi-client v0.1.0 (/opt/rustwide/workdir/chuangshi-client)
[INFO] [stderr]     Checking chuangshi-rmn v0.1.0 (/opt/rustwide/workdir/chuangshi-rmn)
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> chuangshi-client/src/main.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, error};
[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 imports: `error` and `warn`
[INFO] [stdout]  --> chuangshi-rmn/src/main.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tracing::{info, error, warn};
[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 imports: `ChuangshiError` and `utils::*`
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     utils::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     ChuangshiError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> chuangshi-rmn/src/main.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tracing::{info, error, warn};
[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 imports: `ChuangshiError` and `utils::*`
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     utils::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     ChuangshiError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> chuangshi-dn/src/main.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, error};
[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 imports: `ChuangshiError` and `types::*`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     types::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     utils::*,
[INFO] [stdout] 11 |     ChuangshiError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use bytes::Bytes;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> chuangshi-dn/src/main.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, error};
[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 imports: `ChuangshiError` and `types::*`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     types::*,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     utils::*,
[INFO] [stdout] 11 |     ChuangshiError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]   --> chuangshi-dn/src/service.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use bytes::Bytes;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> chuangshi-gmm/src/main.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tracing::{info, error};
[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: `ChuangshiError`
[INFO] [stdout]  --> chuangshi-gmm/src/service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ChuangshiError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> chuangshi-gmm/src/service.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> chuangshi-gmm/src/policy.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChuangshiError`
[INFO] [stdout]  --> chuangshi-gmm/src/namespace.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chuangshi_common::{utils::parse_path, ChuangshiError};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> chuangshi-gmm/src/main.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tracing::{info, error};
[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: `ChuangshiError`
[INFO] [stdout]  --> chuangshi-gmm/src/service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ChuangshiError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> chuangshi-gmm/src/service.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> chuangshi-gmm/src/policy.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChuangshiError`
[INFO] [stdout]  --> chuangshi-gmm/src/namespace.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chuangshi_common::{utils::parse_path, ChuangshiError};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> chuangshi-client/src/main.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, error};
[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 variable: `metadata`
[INFO] [stdout]    --> chuangshi-rmn/src/service.rs:256:21
[INFO] [stdout]     |
[INFO] [stdout] 256 |         if let Some(metadata) = metadata {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `datacenter_id` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RmnServiceImpl {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 26 |     datacenter_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RmnServiceImpl` 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: fields `block_count` and `io_load` are never read
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct DnStatus {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     block_count: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     io_load: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DnStatus` 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 `data_dir` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/cache.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MetadataCache {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout]  9 |     cache: DashMap<Uuid, FileMetadata>,
[INFO] [stdout] 10 |     data_dir: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_path` and `list_all` are never used
[INFO] [stdout]   --> chuangshi-rmn/src/cache.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl MetadataCache {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn get_by_path(&self, path: &str) -> Option<FileMetadata> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn list_all(&self) -> Vec<FileMetadata> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage_used` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/block_manager.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct BlockManager {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     storage_used: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_storage_usage` is never used
[INFO] [stdout]   --> chuangshi-rmn/src/block_manager.rs:90:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl BlockManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub async fn get_storage_usage(&self) -> f32 {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]    --> chuangshi-rmn/src/service.rs:256:21
[INFO] [stdout]     |
[INFO] [stdout] 256 |         if let Some(metadata) = metadata {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `datacenter_id` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RmnServiceImpl {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 26 |     datacenter_id: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RmnServiceImpl` 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: fields `block_count` and `io_load` are never read
[INFO] [stdout]   --> chuangshi-rmn/src/service.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct DnStatus {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     block_count: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     io_load: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DnStatus` 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 `data_dir` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/cache.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MetadataCache {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout]  9 |     cache: DashMap<Uuid, FileMetadata>,
[INFO] [stdout] 10 |     data_dir: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_by_path` and `list_all` are never used
[INFO] [stdout]   --> chuangshi-rmn/src/cache.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl MetadataCache {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn get_by_path(&self, path: &str) -> Option<FileMetadata> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn list_all(&self) -> Vec<FileMetadata> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `storage_used` is never read
[INFO] [stdout]   --> chuangshi-rmn/src/block_manager.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct BlockManager {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     storage_used: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_storage_usage` is never used
[INFO] [stdout]   --> chuangshi-rmn/src/block_manager.rs:90:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl BlockManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub async fn get_storage_usage(&self) -> f32 {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_dn`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         target_dn: &str,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_dn`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_id`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         block_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_checksum`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         expected_checksum: &[u8],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_checksum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_dn`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         target_dn: &str,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_dn`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_id`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         block_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_checksum`
[INFO] [stdout]   --> chuangshi-dn/src/replication.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         expected_checksum: &[u8],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_checksum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ext`
[INFO] [stdout]    --> chuangshi-gmm/src/policy.rs:134:44
[INFO] [stdout]     |
[INFO] [stdout] 134 |             PolicyCondition::FileExtension(ext) => {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_ext`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ext`
[INFO] [stdout]    --> chuangshi-gmm/src/policy.rs:134:44
[INFO] [stdout]     |
[INFO] [stdout] 134 |             PolicyCondition::FileExtension(ext) => {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_ext`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_complete` and `list_all` are never used
[INFO] [stdout]    --> chuangshi-gmm/src/metadata.rs:96:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl MetadataManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub async fn mark_complete(&self, file_id: Uuid) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub async fn list_all(&self) -> Vec<FileMetadata> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `datacenter_loads` is never read
[INFO] [stdout]  --> chuangshi-gmm/src/policy.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PolicyEngine {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     policies: Vec<Policy>,
[INFO] [stdout] 8 |     datacenter_loads: HashMap<String, f64>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_policy` and `update_datacenter_load` are never used
[INFO] [stdout]    --> chuangshi-gmm/src/policy.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl PolicyEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn update_policy(&mut self, policy: Policy) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn update_datacenter_load(&mut self, datacenter_id: String, load: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `datacenter_id`, `cpu_usage`, `memory_usage`, `storage_usage`, and `last_update` are never read
[INFO] [stdout]   --> chuangshi-gmm/src/health.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct RmnHealth {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     pub datacenter_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]  8 |     pub cpu_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]  9 |     pub memory_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub storage_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub last_update: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RmnHealth` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_healthiest_datacenter` and `is_healthy` are never used
[INFO] [stdout]   --> chuangshi-gmm/src/health.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl HealthMonitor {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_healthiest_datacenter(&self, exclude: &[String]) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn is_healthy(&self, datacenter_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_complete` and `list_all` are never used
[INFO] [stdout]    --> chuangshi-gmm/src/metadata.rs:96:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl MetadataManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub async fn mark_complete(&self, file_id: Uuid) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub async fn list_all(&self) -> Vec<FileMetadata> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `datacenter_loads` is never read
[INFO] [stdout]  --> chuangshi-gmm/src/policy.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PolicyEngine {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     policies: Vec<Policy>,
[INFO] [stdout] 8 |     datacenter_loads: HashMap<String, f64>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_policy` and `update_datacenter_load` are never used
[INFO] [stdout]    --> chuangshi-gmm/src/policy.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl PolicyEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn update_policy(&mut self, policy: Policy) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn update_datacenter_load(&mut self, datacenter_id: String, load: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `datacenter_id`, `cpu_usage`, `memory_usage`, `storage_usage`, and `last_update` are never read
[INFO] [stdout]   --> chuangshi-gmm/src/health.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct RmnHealth {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     pub datacenter_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]  8 |     pub cpu_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]  9 |     pub memory_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 10 |     pub storage_usage: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub last_update: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RmnHealth` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_healthiest_datacenter` and `is_healthy` are never used
[INFO] [stdout]   --> chuangshi-gmm/src/health.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl HealthMonitor {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get_healthiest_datacenter(&self, exclude: &[String]) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn is_healthy(&self, datacenter_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31", kill_on_drop: false }`
[INFO] [stdout] 9fa8bfc26b362bee1caa98ce1b3b9869ecf6166965ca1beb51f2c801d1798b31
