[INFO] fetching crate sdcons 0.1.0...
[INFO] testing sdcons-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate sdcons 0.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate sdcons 0.1.0
[INFO] finished tweaking crates.io crate sdcons 0.1.0
[INFO] tweaked toml for crates.io crate sdcons 0.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sdcons 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 54 packages to highest compatible versions
[INFO] [stderr]       Adding rand v0.8.8 (available: v0.10.3)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.21)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 | repository = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |              --------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be
[INFO] running `Command { std: "docker" "start" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", 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" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 | repository = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |              --------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr]    Compiling zerocopy v0.8.60
[INFO] [stderr]    Compiling cfg-if v1.0.5
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling sdcons v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/cons.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log::{debug, error, info, trace, 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 import: `Entry`
[INFO] [stdout]   --> src/sdcons/progress.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::types::{ConfigStage, Entry, EntryMeta, HardState, MemberState};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sdcons/progress.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | use chrono::{prelude::*, DateTime};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/progress.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/sdcons/storage.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/sdcons/storage.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/raw_node.rs:488:38
[INFO] [stdout]     |
[INFO] [stdout] 488 |         if id < 1 || id == std::u64::MAX {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/sdcons/constant.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const INVALID_NODE_ID: u64 = std::u64::MAX;
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:264:44
[INFO] [stdout]     |
[INFO] [stdout] 264 |         e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:265:35
[INFO] [stdout]     |
[INFO] [stdout] 265 |         e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:272:48
[INFO] [stdout]     |
[INFO] [stdout] 272 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:280:48
[INFO] [stdout]     |
[INFO] [stdout] 280 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:281:39
[INFO] [stdout]     |
[INFO] [stdout] 281 |             e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/progress.rs:349:44
[INFO] [stdout]     |
[INFO] [stdout] 349 |             last_liveness_at: Local::now().timestamp_nanos(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/sdcons/cons.rs:1410:37
[INFO] [stdout]      |
[INFO] [stdout] 1410 |     fn handle_read_reply(&mut self, from: u64, msg: ReadReplyMsg) {
[INFO] [stdout]      |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sdcons/cons.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl TransferingRecord {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 310 |     fn new(channel_id: u64, to: u64) -> TransferingRecord {
[INFO] [stdout]     |        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `choosen_id`, `pending_id`, and `applied_id` are never read
[INFO] [stdout]    --> src/sdcons/cons.rs:475:5
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub(crate) struct Sdcons {
[INFO] [stdout]     |                   ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 475 |     choosen_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 476 |     pending_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 477 |     applied_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Sdcons` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_index_student` and `is_channel_candidate` are never used
[INFO] [stdout]    --> src/sdcons/cons.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 567 | impl Sdcons {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 589 |     fn is_index_student(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 603 |     fn is_channel_candidate(&self, channel_id: u64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_id` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Progress {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 138 |     pub node_id: u64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Progress` 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: field `last_liveness_at` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct ChannelInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub last_liveness_at: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChannelInfo` 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 `current_term` and `is_student` are never used
[INFO] [stdout]    --> src/sdcons/progress.rs:356:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl ChannelInfo {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn current_term(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     pub fn is_student(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `member_id` is never read
[INFO] [stdout]   --> src/sdcons/storage.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(super) struct EntryQueue {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] 30 |     pub member_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `first_entry_id`, `last_entry_meta`, `first_index_of_term`, and `last_stabled_entry_id` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl EntryQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn first_entry_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn last_entry_meta(&self) -> (u64, u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn first_index_of_term(&self, channel_term: u64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn last_stabled_entry_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `range`, `applied_index_range`, and `entry_index_id` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl MemStorage {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 178 |     pub fn new(id: u64) -> MemStorage {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn range(&self, from: u64, to: u64, max_bytes: u64) -> Vec<Entry> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub fn applied_index_range(&self) -> (u64, u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub fn entry_index_id(&self, channel_id: u64, entry_id: u64) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> Cargo.toml:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 | [dependencies.serde_json]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.70s
[INFO] running `Command { std: "docker" "inspect" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 | repository = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |              --------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr]    Compiling zerocopy v0.8.60
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling sdcons v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/cons.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log::{debug, error, info, trace, 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 import: `Entry`
[INFO] [stdout]   --> src/sdcons/progress.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::types::{ConfigStage, Entry, EntryMeta, HardState, MemberState};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sdcons/progress.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | use chrono::{prelude::*, DateTime};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/progress.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/sdcons/storage.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/sdcons/storage.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/raw_node.rs:488:38
[INFO] [stdout]     |
[INFO] [stdout] 488 |         if id < 1 || id == std::u64::MAX {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/sdcons/constant.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const INVALID_NODE_ID: u64 = std::u64::MAX;
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/cons.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log::{debug, error, info, trace, 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 import: `Entry`
[INFO] [stdout]   --> src/sdcons/progress.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::types::{ConfigStage, Entry, EntryMeta, HardState, MemberState};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]   --> src/sdcons/progress.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | use chrono::{prelude::*, DateTime};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/sdcons/progress.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/sdcons/storage.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/sdcons/storage.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stdout]    |                  ^^^^^               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:264:44
[INFO] [stdout]     |
[INFO] [stdout] 264 |         e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:265:35
[INFO] [stdout]     |
[INFO] [stdout] 265 |         e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:272:48
[INFO] [stdout]     |
[INFO] [stdout] 272 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:280:48
[INFO] [stdout]     |
[INFO] [stdout] 280 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:281:39
[INFO] [stdout]     |
[INFO] [stdout] 281 |             e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/raw_node.rs:488:38
[INFO] [stdout]     |
[INFO] [stdout] 488 |         if id < 1 || id == std::u64::MAX {
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]   --> src/sdcons/constant.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const INVALID_NODE_ID: u64 = std::u64::MAX;
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:832:60
[INFO] [stdout]     |
[INFO] [stdout] 832 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:840:60
[INFO] [stdout]     |
[INFO] [stdout] 840 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:858:60
[INFO] [stdout]     |
[INFO] [stdout] 858 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stdout]     |                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:890:46
[INFO] [stdout]     |
[INFO] [stdout] 890 |         s.extract_unstable_entries(std::u64::MAX);
[INFO] [stdout]     |                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:894:67
[INFO] [stdout]     |
[INFO] [stdout] 894 |         let (_, _, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stdout]     |                                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:906:74
[INFO] [stdout]     |
[INFO] [stdout] 906 |         let (first, last, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stdout]     |                                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/sdcons/storage.rs:921:74
[INFO] [stdout]     |
[INFO] [stdout] 921 |         let (first, last, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stdout]     |                                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/progress.rs:349:44
[INFO] [stdout]     |
[INFO] [stdout] 349 |             last_liveness_at: Local::now().timestamp_nanos(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:264:44
[INFO] [stdout]     |
[INFO] [stdout] 264 |         e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:265:35
[INFO] [stdout]     |
[INFO] [stdout] 265 |         e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:272:48
[INFO] [stdout]     |
[INFO] [stdout] 272 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:280:48
[INFO] [stdout]     |
[INFO] [stdout] 280 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/cons.rs:281:39
[INFO] [stdout]     |
[INFO] [stdout] 281 |             e.start_at = Local::now().timestamp_nanos();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stdout]    --> src/sdcons/progress.rs:349:44
[INFO] [stdout]     |
[INFO] [stdout] 349 |             last_liveness_at: Local::now().timestamp_nanos(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/sdcons/cons.rs:1410:37
[INFO] [stdout]      |
[INFO] [stdout] 1410 |     fn handle_read_reply(&mut self, from: u64, msg: ReadReplyMsg) {
[INFO] [stdout]      |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/sdcons/cons.rs:1410:37
[INFO] [stdout]      |
[INFO] [stdout] 1410 |     fn handle_read_reply(&mut self, from: u64, msg: ReadReplyMsg) {
[INFO] [stdout]      |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sdcons/cons.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl TransferingRecord {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 310 |     fn new(channel_id: u64, to: u64) -> TransferingRecord {
[INFO] [stdout]     |        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `choosen_id`, `pending_id`, and `applied_id` are never read
[INFO] [stdout]    --> src/sdcons/cons.rs:475:5
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub(crate) struct Sdcons {
[INFO] [stdout]     |                   ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 475 |     choosen_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 476 |     pending_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 477 |     applied_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Sdcons` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_index_student` and `is_channel_candidate` are never used
[INFO] [stdout]    --> src/sdcons/cons.rs:589:8
[INFO] [stdout]     |
[INFO] [stdout] 567 | impl Sdcons {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 589 |     fn is_index_student(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 603 |     fn is_channel_candidate(&self, channel_id: u64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_id` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Progress {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 138 |     pub node_id: u64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Progress` 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: field `last_liveness_at` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct ChannelInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub last_liveness_at: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChannelInfo` 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 `current_term` and `is_student` are never used
[INFO] [stdout]    --> src/sdcons/progress.rs:356:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl ChannelInfo {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn current_term(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     pub fn is_student(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `member_id` is never read
[INFO] [stdout]   --> src/sdcons/storage.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(super) struct EntryQueue {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] 30 |     pub member_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `first_entry_id`, `last_entry_meta`, `first_index_of_term`, and `last_stabled_entry_id` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl EntryQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn first_entry_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn last_entry_meta(&self) -> (u64, u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn first_index_of_term(&self, channel_term: u64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn last_stabled_entry_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `range`, `applied_index_range`, and `entry_index_id` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl MemStorage {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 178 |     pub fn new(id: u64) -> MemStorage {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn range(&self, from: u64, to: u64, max_bytes: u64) -> Vec<Entry> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub fn applied_index_range(&self) -> (u64, u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub fn entry_index_id(&self, channel_id: u64, entry_id: u64) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/sdcons/cons.rs:4244:13
[INFO] [stdout]      |
[INFO] [stdout] 4244 |         let mut log_meta = init_log_meta_with_default_members();
[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/sdcons/progress.rs:781:13
[INFO] [stdout]     |
[INFO] [stdout] 781 |         let mut hint_id = 5;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sdcons/cons.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl TransferingRecord {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 310 |     fn new(channel_id: u64, to: u64) -> TransferingRecord {
[INFO] [stdout]     |        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `choosen_id`, `pending_id`, and `applied_id` are never read
[INFO] [stdout]    --> src/sdcons/cons.rs:475:5
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub(crate) struct Sdcons {
[INFO] [stdout]     |                   ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 475 |     choosen_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 476 |     pending_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 477 |     applied_id: u64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Sdcons` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `task` is never used
[INFO] [stdout]     --> src/sdcons/cons.rs:2660:8
[INFO] [stdout]      |
[INFO] [stdout] 2660 |     fn task(value: u8) -> Task {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_id` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Progress {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 138 |     pub node_id: u64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Progress` 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: field `last_liveness_at` is never read
[INFO] [stdout]    --> src/sdcons/progress.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub struct ChannelInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub last_liveness_at: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ChannelInfo` 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: method `current_term` is never used
[INFO] [stdout]    --> src/sdcons/progress.rs:356:12
[INFO] [stdout]     |
[INFO] [stdout] 297 | impl ChannelInfo {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn current_term(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `member_id` is never read
[INFO] [stdout]   --> src/sdcons/storage.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(super) struct EntryQueue {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] 30 |     pub member_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `first_entry_id`, `last_entry_meta`, and `first_index_of_term` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl EntryQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn first_entry_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn last_entry_meta(&self) -> (u64, u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn first_index_of_term(&self, channel_term: u64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `range`, `applied_index_range`, and `entry_index_id` are never used
[INFO] [stdout]    --> src/sdcons/storage.rs:410:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl MemStorage {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn range(&self, from: u64, to: u64, max_bytes: u64) -> Vec<Entry> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub fn applied_index_range(&self) -> (u64, u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub fn entry_index_id(&self, channel_id: u64, entry_id: u64) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> Cargo.toml:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 | [dependencies.serde_json]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.01s
[INFO] running `Command { std: "docker" "inspect" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | homepage = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 | repository = "https://github.com/patricknicholas/sdcons/"
[INFO] [stderr]    |              --------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]   --> src/sdcons/cons.rs:20:18
[INFO] [stderr]    |
[INFO] [stderr] 20 | use log::{debug, error, info, trace, warn};
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Entry`
[INFO] [stderr]   --> src/sdcons/progress.rs:20:33
[INFO] [stderr]    |
[INFO] [stderr] 20 | use crate::types::{ConfigStage, Entry, EntryMeta, HardState, MemberState};
[INFO] [stderr]    |                                 ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DateTime`
[INFO] [stderr]   --> src/sdcons/progress.rs:22:26
[INFO] [stderr]    |
[INFO] [stderr] 22 | use chrono::{prelude::*, DateTime};
[INFO] [stderr]    |                          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]   --> src/sdcons/progress.rs:23:18
[INFO] [stderr]    |
[INFO] [stderr] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]   --> src/sdcons/storage.rs:20:33
[INFO] [stderr]    |
[INFO] [stderr] 20 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stderr]    |                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error` and `warn`
[INFO] [stderr]   --> src/sdcons/storage.rs:23:18
[INFO] [stderr]    |
[INFO] [stderr] 23 | use log::{debug, error, info, trace, warn};
[INFO] [stderr]    |                  ^^^^^               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/raw_node.rs:488:38
[INFO] [stderr]     |
[INFO] [stderr] 488 |         if id < 1 || id == std::u64::MAX {
[INFO] [stderr]     |                                      ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]   --> src/sdcons/constant.rs:18:44
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const INVALID_NODE_ID: u64 = std::u64::MAX;
[INFO] [stderr]    |                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/cons.rs:264:44
[INFO] [stderr]     |
[INFO] [stderr] 264 |         e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/cons.rs:265:35
[INFO] [stderr]     |
[INFO] [stderr] 265 |         e.start_at = Local::now().timestamp_nanos();
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/cons.rs:272:48
[INFO] [stderr]     |
[INFO] [stderr] 272 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stderr]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/cons.rs:280:48
[INFO] [stderr]     |
[INFO] [stderr] 280 |             e.last_heartbeat_at = Local::now().timestamp_nanos();
[INFO] [stderr]     |                                                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/cons.rs:281:39
[INFO] [stderr]     |
[INFO] [stderr] 281 |             e.start_at = Local::now().timestamp_nanos();
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::DateTime::<Tz>::timestamp_nanos`: use `timestamp_nanos_opt()` instead
[INFO] [stderr]    --> src/sdcons/progress.rs:349:44
[INFO] [stderr]     |
[INFO] [stderr] 349 |             last_liveness_at: Local::now().timestamp_nanos(),
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `from`
[INFO] [stderr]     --> src/sdcons/cons.rs:1410:37
[INFO] [stderr]      |
[INFO] [stderr] 1410 |     fn handle_read_reply(&mut self, from: u64, msg: ReadReplyMsg) {
[INFO] [stderr]      |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/sdcons/cons.rs:310:8
[INFO] [stderr]     |
[INFO] [stderr] 309 | impl TransferingRecord {
[INFO] [stderr]     | ---------------------- associated function in this implementation
[INFO] [stderr] 310 |     fn new(channel_id: u64, to: u64) -> TransferingRecord {
[INFO] [stderr]     |        ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `choosen_id`, `pending_id`, and `applied_id` are never read
[INFO] [stderr]    --> src/sdcons/cons.rs:475:5
[INFO] [stderr]     |
[INFO] [stderr] 461 | pub(crate) struct Sdcons {
[INFO] [stderr]     |                   ------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 475 |     choosen_id: u64,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] 476 |     pending_id: u64,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] 477 |     applied_id: u64,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Sdcons` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_index_student` and `is_channel_candidate` are never used
[INFO] [stderr]    --> src/sdcons/cons.rs:589:8
[INFO] [stderr]     |
[INFO] [stderr] 567 | impl Sdcons {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 589 |     fn is_index_student(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 603 |     fn is_channel_candidate(&self, channel_id: u64) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `node_id` is never read
[INFO] [stderr]    --> src/sdcons/progress.rs:138:9
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct Progress {
[INFO] [stderr]     |            -------- field in this struct
[INFO] [stderr] 138 |     pub node_id: u64,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Progress` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `last_liveness_at` is never read
[INFO] [stderr]    --> src/sdcons/progress.rs:286:9
[INFO] [stderr]     |
[INFO] [stderr] 272 | pub struct ChannelInfo {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub last_liveness_at: i64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ChannelInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `current_term` and `is_student` are never used
[INFO] [stderr]    --> src/sdcons/progress.rs:356:12
[INFO] [stderr]     |
[INFO] [stderr] 297 | impl ChannelInfo {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 356 |     pub fn current_term(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 639 |     pub fn is_student(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `member_id` is never read
[INFO] [stderr]   --> src/sdcons/storage.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub(super) struct EntryQueue {
[INFO] [stderr]    |                   ---------- field in this struct
[INFO] [stderr] 30 |     pub member_id: u64,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `EntryQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `first_entry_id`, `last_entry_meta`, `first_index_of_term`, and `last_stabled_entry_id` are never used
[INFO] [stderr]    --> src/sdcons/storage.rs:62:8
[INFO] [stderr]     |
[INFO] [stderr]  37 | impl EntryQueue {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  62 |     fn first_entry_id(&self) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     fn last_entry_meta(&self) -> (u64, u64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     fn first_index_of_term(&self, channel_term: u64) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     fn last_stabled_entry_id(&self) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `range`, `applied_index_range`, and `entry_index_id` are never used
[INFO] [stderr]    --> src/sdcons/storage.rs:178:12
[INFO] [stderr]     |
[INFO] [stderr] 177 | impl MemStorage {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 178 |     pub fn new(id: u64) -> MemStorage {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 410 |     pub fn range(&self, from: u64, to: u64, max_bytes: u64) -> Vec<Entry> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 594 |     pub fn applied_index_range(&self) -> (u64, u64) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 677 |     pub fn entry_index_id(&self, channel_id: u64, entry_id: u64) -> Option<u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:832:60
[INFO] [stderr]     |
[INFO] [stderr] 832 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stderr]     |                                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:840:60
[INFO] [stderr]     |
[INFO] [stderr] 840 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stderr]     |                                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:858:60
[INFO] [stderr]     |
[INFO] [stderr] 858 |         let entries = s.extract_unstable_entries(std::u64::MAX);
[INFO] [stderr]     |                                                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:890:46
[INFO] [stderr]     |
[INFO] [stderr] 890 |         s.extract_unstable_entries(std::u64::MAX);
[INFO] [stderr]     |                                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:894:67
[INFO] [stderr]     |
[INFO] [stderr] 894 |         let (_, _, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stderr]     |                                                                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:906:74
[INFO] [stderr]     |
[INFO] [stderr] 906 |         let (first, last, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stderr]     |                                                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::u64::MAX`: replaced by the `MAX` associated constant on this type
[INFO] [stderr]    --> src/sdcons/storage.rs:921:74
[INFO] [stderr]     |
[INFO] [stderr] 921 |         let (first, last, entries) = s.extract_unapply_entries(std::u64::MAX);
[INFO] [stderr]     |                                                                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/sdcons/cons.rs:4244:13
[INFO] [stderr]      |
[INFO] [stderr] 4244 |         let mut log_meta = init_log_meta_with_default_members();
[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/sdcons/progress.rs:781:13
[INFO] [stderr]     |
[INFO] [stderr] 781 |         let mut hint_id = 5;
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `task` is never used
[INFO] [stderr]     --> src/sdcons/cons.rs:2660:8
[INFO] [stderr]      |
[INFO] [stderr] 2660 |     fn task(value: u8) -> Task {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `current_term` is never used
[INFO] [stderr]    --> src/sdcons/progress.rs:356:12
[INFO] [stderr]     |
[INFO] [stderr] 297 | impl ChannelInfo {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 356 |     pub fn current_term(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `first_entry_id`, `last_entry_meta`, and `first_index_of_term` are never used
[INFO] [stderr]    --> src/sdcons/storage.rs:62:8
[INFO] [stderr]     |
[INFO] [stderr]  37 | impl EntryQueue {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  62 |     fn first_entry_id(&self) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     fn last_entry_meta(&self) -> (u64, u64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     fn first_index_of_term(&self, channel_term: u64) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `range`, `applied_index_range`, and `entry_index_id` are never used
[INFO] [stderr]    --> src/sdcons/storage.rs:410:12
[INFO] [stderr]     |
[INFO] [stderr] 177 | impl MemStorage {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 410 |     pub fn range(&self, from: u64, to: u64, max_bytes: u64) -> Vec<Entry> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 594 |     pub fn applied_index_range(&self) -> (u64, u64) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 677 |     pub fn entry_index_id(&self, channel_id: u64, entry_id: u64) -> Option<u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `sdcons` (lib) generated 24 warnings (run `cargo fix --lib -p sdcons` to apply 7 suggestions)
[INFO] [stderr] warning: `sdcons` (lib test) generated 33 warnings (20 duplicates) (run `cargo fix --lib -p sdcons --tests` to apply 2 suggestions)
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> Cargo.toml:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 | [dependencies.serde_json]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `sdcons` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/sdcons/lib.rs (/opt/rustwide/target/debug/build/sdcons/d8d5a346694a4868/out/sdcons-d8d5a346694a4868)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test cons::tests::index_leader_read_index ... ok
[INFO] [stdout] test cons::tests::bcast_indexes ... ok
[INFO] [stdout] test cons::tests::enter_both_stage ... ok
[INFO] [stdout] test cons::tests::multi_member_chosen ... ok
[INFO] [stdout] test cons::tests::handle_prepare_req ... ok
[INFO] [stdout] test cons::tests::recovery_new_stage_config_change ... ok
[INFO] [stdout] test cons::tests::only_assign_index_once ... ok
[INFO] [stdout] test cons::tests::receive_entries ... ok
[INFO] [stdout] test cons::tests::recovery_both_stage_config_change ... ok
[INFO] [stdout] test cons::tests::assign_indexes_to_entries_recieved_in_electing ... ok
[INFO] [stdout] test cons::tests::apply_config_change ... ok
[INFO] [stdout] test cons::tests::handle_vote_request ... ok
[INFO] [stdout] test cons::tests::committed_should_reach_majority_in_both_stage ... ok
[INFO] [stdout] test cons::tests::index_leader_receive_read_index ... ok
[INFO] [stdout] test cons::tests::single_member_choose ... ok
[INFO] [stdout] test cons::tests::rollback_config_change ... ok
[INFO] [stdout] test cons::tests::replicate_entries ... ok
[INFO] [stdout] test cons::tests::to_follower_when_receive_high_term ... ok
[INFO] [stdout] test cons::tests::multi_member_receive_chosen ... ok
[INFO] [stdout] test cons::tests::learn_refreshed_entries ... ok
[INFO] [stdout] test cons::tests::single_member_election ... ok
[INFO] [stdout] test cons::tests::transfer_leadership_directly ... ok
[INFO] [stdout] test cons::tests::multi_member_election ... ok
[INFO] [stdout] test storage::tests::entry_queue_last_id ... ok
[INFO] [stdout] test cons::tests::follower_retry_read_index_when_heartbeat ... ok
[INFO] [stdout] test progress::tests::reset_to_probe ... ok
[INFO] [stdout] test progress::tests::update_match_next_id ... ok
[INFO] [stdout] test storage::tests::mem_storage_basic ... ok
[INFO] [stdout] test storage::tests::entry_queue_release ... ok
[INFO] [stdout] test storage::tests::mem_storage_release ... ok
[INFO] [stdout] test storage::tests::mem_storage_apply ... ok
[INFO] [stdout] test cons::tests::transfer_leadership_after_matched ... ok
[INFO] [stderr]    Doc-tests sdcons
[INFO] [stdout] test cons::tests::to_follower_when_someone_declare_leader ... ok
[INFO] [stdout] test storage::tests::mem_storage_stable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be", kill_on_drop: false }`
[INFO] [stdout] 98c97f5a13c69ce57edf7cda18b9c00c26d92b40965e5608e56ed58e1b24e5be
