[INFO] cloning repository https://github.com/dat2/rust-raft
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dat2/rust-raft" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdat2%2Frust-raft", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdat2%2Frust-raft'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8881ddba811664ddb4f67e143b876fc7f06a5c9d
[INFO] checking dat2/rust-raft against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdat2%2Frust-raft" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dat2/rust-raft
[INFO] finished tweaking git repo https://github.com/dat2/rust-raft
[INFO] tweaked toml for git repo https://github.com/dat2/rust-raft written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dat2/rust-raft on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dat2/rust-raft 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" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-core v0.1.7
[INFO] [stderr]   Downloaded term_size v0.2.3
[INFO] [stderr]   Downloaded lazycell v0.4.0
[INFO] [stderr]   Downloaded tokio-io v0.1.1
[INFO] [stderr]   Downloaded unreachable v0.1.1
[INFO] [stderr]   Downloaded thread-id v3.0.0
[INFO] [stderr]   Downloaded vec_map v0.6.0
[INFO] [stderr]   Downloaded mio v0.6.7
[INFO] [stderr]   Downloaded thread_local v0.3.3
[INFO] [stderr]   Downloaded aho-corasick v0.6.2
[INFO] [stderr]   Downloaded env_logger v0.4.1
[INFO] [stderr]   Downloaded serde_derive_internals v0.15.0
[INFO] [stderr]   Downloaded net2 v0.2.29
[INFO] [stderr]   Downloaded bytes v0.4.3
[INFO] [stderr]   Downloaded serde_derive v1.0.4
[INFO] [stderr]   Downloaded error-chain v0.7.2
[INFO] [stderr]   Downloaded backtrace v0.3.0
[INFO] [stderr]   Downloaded serde v1.0.4
[INFO] [stderr]   Downloaded unicode-segmentation v1.1.0
[INFO] [stderr]   Downloaded bincode v0.8.0
[INFO] [stderr]   Downloaded futures v0.1.13
[INFO] [stderr]   Downloaded regex-syntax v0.4.0
[INFO] [stderr]   Downloaded clap v2.20.5
[INFO] [stderr]   Downloaded regex v0.2.1
[INFO] [stderr]   Downloaded memchr v1.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1fc27073f12bd772f58437fd6585ca60e2e561fac3a6cbe11f0e93d96b2945d7
[INFO] running `Command { std: "docker" "start" "-a" "1fc27073f12bd772f58437fd6585ca60e2e561fac3a6cbe11f0e93d96b2945d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1fc27073f12bd772f58437fd6585ca60e2e561fac3a6cbe11f0e93d96b2945d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fc27073f12bd772f58437fd6585ca60e2e561fac3a6cbe11f0e93d96b2945d7", kill_on_drop: false }`
[INFO] [stdout] 1fc27073f12bd772f58437fd6585ca60e2e561fac3a6cbe11f0e93d96b2945d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a38f61d463065d7f84b90b13a579fcc851eb3efc1afb183996a187d43f70b6f
[INFO] running `Command { std: "docker" "start" "-a" "1a38f61d463065d7f84b90b13a579fcc851eb3efc1afb183996a187d43f70b6f", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Checking libc v0.2.21
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking cfg-if v0.1.0
[INFO] [stderr]    Compiling gcc v0.3.43
[INFO] [stderr]     Checking futures v0.1.13
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking lazycell v0.4.0
[INFO] [stderr]    Compiling backtrace v0.3.0
[INFO] [stderr]     Checking rustc-demangle v0.1.4
[INFO] [stderr]     Checking unreachable v0.1.1
[INFO] [stderr]     Checking regex-syntax v0.4.0
[INFO] [stderr]     Checking serde v1.0.4
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking vec_map v0.6.0
[INFO] [stderr]    Compiling serde_derive_internals v0.15.0
[INFO] [stderr]     Checking unicode-segmentation v1.1.0
[INFO] [stderr]     Checking num-traits v0.1.37
[INFO] [stderr]    Compiling dbghelp-sys v0.2.0
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking iovec v0.1.0
[INFO] [stderr]     Checking net2 v0.2.29
[INFO] [stderr]     Checking thread-id v3.0.0
[INFO] [stderr]     Checking memchr v1.0.1
[INFO] [stderr]     Checking term_size v0.2.3
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking thread_local v0.3.3
[INFO] [stderr]     Checking aho-corasick v0.6.2
[INFO] [stderr]     Checking clap v2.20.5
[INFO] [stderr]     Checking bytes v0.4.3
[INFO] [stderr]     Checking mio v0.6.7
[INFO] [stderr]    Compiling backtrace-sys v0.1.10
[INFO] [stderr]    Compiling serde_derive v1.0.4
[INFO] [stderr]     Checking tokio-service v0.1.0
[INFO] [stderr]     Checking tokio-io v0.1.1
[INFO] [stderr]     Checking regex v0.2.1
[INFO] [stderr]     Checking tokio-core v0.1.7
[INFO] [stderr]     Checking tokio-proto v0.1.1
[INFO] [stderr]     Checking env_logger v0.4.1
[INFO] [stderr]     Checking bincode v0.8.0
[INFO] [stderr]     Checking error-chain v0.7.2
[INFO] [stderr]     Checking raft v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::str;
[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: `UnboundedReceiver`
[INFO] [stdout]   --> src/server.rs:13:55
[INFO] [stdout]    |
[INFO] [stdout] 13 | use futures::sync::mpsc::{unbounded, UnboundedSender, UnboundedReceiver};
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::str;
[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: `UnboundedReceiver`
[INFO] [stdout]   --> src/server.rs:13:55
[INFO] [stdout]    |
[INFO] [stdout] 13 | use futures::sync::mpsc::{unbounded, UnboundedSender, UnboundedReceiver};
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / error_chain! {
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | |   types {
[INFO] [stdout]  4 | |     Error, ErrorKind, ResultExt, Result;
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / error_chain! {
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | |   types {
[INFO] [stdout]  4 | |     Error, ErrorKind, ResultExt, Result;
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / error_chain! {
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | |   types {
[INFO] [stdout]  4 | |     Error, ErrorKind, ResultExt, Result;
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:34:62
[INFO] [stdout]    |
[INFO] [stdout] 34 |         Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:53:60
[INFO] [stdout]    |
[INFO] [stdout] 53 |       Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:87:85
[INFO] [stdout]    |
[INFO] [stdout] 87 |         self.tx.send(oneshot_tx).map_err(|e| io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:89:87
[INFO] [stdout]    |
[INFO] [stdout] 89 |           .and_then(|_| oneshot_rx.map_err(|e| io::Error::new(io::ErrorKind::Other, e.description())))
[INFO] [stdout]    |                                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / error_chain! {
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | |   types {
[INFO] [stdout]  4 | |     Error, ErrorKind, ResultExt, Result;
[INFO] [stdout] ...  |
[INFO] [stdout] 13 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/client.rs:33:62
[INFO] [stdout]    |
[INFO] [stdout] 33 |         Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description())),
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/client.rs:52:60
[INFO] [stdout]    |
[INFO] [stdout] 52 |       Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description())),
[INFO] [stdout]    |                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:34:62
[INFO] [stdout]    |
[INFO] [stdout] 34 |         Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:53:60
[INFO] [stdout]    |
[INFO] [stdout] 53 |       Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:87:85
[INFO] [stdout]    |
[INFO] [stdout] 87 |         self.tx.send(oneshot_tx).map_err(|e| io::Error::new(io::ErrorKind::Other, e.description()))
[INFO] [stdout]    |                                                                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/server.rs:89:87
[INFO] [stdout]    |
[INFO] [stdout] 89 |           .and_then(|_| oneshot_rx.map_err(|e| io::Error::new(io::ErrorKind::Other, e.description())))
[INFO] [stdout]    |                                                                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/client.rs:33:62
[INFO] [stdout]    |
[INFO] [stdout] 33 |         Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description())),
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/client.rs:52:60
[INFO] [stdout]    |
[INFO] [stdout] 52 |       Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.description())),
[INFO] [stdout]    |                                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RaftState` is never constructed
[INFO] [stdout]  --> src/state.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RaftState {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `vote` are never used
[INFO] [stdout]   --> src/state.rs:7:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl RaftState {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout]  7 |   pub fn new() -> RaftState {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |   pub fn vote(&mut self, candidate: String) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StateEnum` is never used
[INFO] [stdout]   --> src/state.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum StateEnum {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateMachine` is never constructed
[INFO] [stdout]   --> src/state.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct StateMachine<S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/state.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<S> StateMachine<S> {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 32 |   fn new(state: S, term: usize) -> StateMachine<S> {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init`, `vote`, `complete_vote`, and `election_timeout` are never used
[INFO] [stdout]   --> src/state.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl StateMachine<Follower> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 41 |   // everyone starts off as a follower
[INFO] [stdout] 42 |   pub fn init() -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |   pub fn vote(self, candidate: String) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |   pub fn complete_vote(self) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |   pub fn election_timeout(self) -> StateMachine<Candidate> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `failed_majority_timeout`, `other_leader_elected`, and `elected` are never used
[INFO] [stdout]   --> src/state.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl StateMachine<Candidate> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] 63 |   // if no majority was reached, then we just need to increment term and try again
[INFO] [stdout] 64 |   pub fn failed_majority_timeout(self) -> StateMachine<Candidate> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |   pub fn other_leader_elected(self) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |   pub fn elected(self) -> StateMachine<Leader> {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Follower` is never constructed
[INFO] [stdout]   --> src/state.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct Follower {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/state.rs:85:6
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl Follower {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 85 |   fn new(voted_for: Option<String>) -> Follower {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Candidate` is never constructed
[INFO] [stdout]   --> src/state.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct Candidate;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Leader` is never constructed
[INFO] [stdout]   --> src/state.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct Leader;
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RaftState` is never constructed
[INFO] [stdout]  --> src/state.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct RaftState {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `vote` are never used
[INFO] [stdout]   --> src/state.rs:7:10
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl RaftState {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout]  7 |   pub fn new() -> RaftState {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |   pub fn vote(&mut self, candidate: String) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StateEnum` is never used
[INFO] [stdout]   --> src/state.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum StateEnum {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateMachine` is never constructed
[INFO] [stdout]   --> src/state.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct StateMachine<S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/state.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<S> StateMachine<S> {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 32 |   fn new(state: S, term: usize) -> StateMachine<S> {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init`, `vote`, `complete_vote`, and `election_timeout` are never used
[INFO] [stdout]   --> src/state.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl StateMachine<Follower> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 41 |   // everyone starts off as a follower
[INFO] [stdout] 42 |   pub fn init() -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |   pub fn vote(self, candidate: String) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |   pub fn complete_vote(self) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |   pub fn election_timeout(self) -> StateMachine<Candidate> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `failed_majority_timeout`, `other_leader_elected`, and `elected` are never used
[INFO] [stdout]   --> src/state.rs:64:10
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl StateMachine<Candidate> {
[INFO] [stdout]    | ---------------------------- methods in this implementation
[INFO] [stdout] 63 |   // if no majority was reached, then we just need to increment term and try again
[INFO] [stdout] 64 |   pub fn failed_majority_timeout(self) -> StateMachine<Candidate> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |   pub fn other_leader_elected(self) -> StateMachine<Follower> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |   pub fn elected(self) -> StateMachine<Leader> {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Follower` is never constructed
[INFO] [stdout]   --> src/state.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct Follower {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/state.rs:85:6
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl Follower {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 85 |   fn new(voted_for: Option<String>) -> Follower {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/server.rs:107:7
[INFO] [stdout]     |
[INFO] [stdout] 107 |       v.send(rng.gen());
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |       let _ = v.send(rng.gen());
[INFO] [stdout]     |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Candidate` is never constructed
[INFO] [stdout]   --> src/state.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct Candidate;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RaftRequest` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RaftRequest`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Leader` is never constructed
[INFO] [stdout]   --> src/state.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct Leader;
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `RaftRequest` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RaftRequest`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RaftResponse` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RaftResponse`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/server.rs:107:7
[INFO] [stdout]     |
[INFO] [stdout] 107 |       v.send(rng.gen());
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |       let _ = v.send(rng.gen());
[INFO] [stdout]     |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RaftRequest` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RaftRequest`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `RaftRequest` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RaftRequest`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RaftResponse` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RaftResponse`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `RaftResponse` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RaftResponse`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/messages.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Serialize, Deserialize, PartialEq,Debug)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `RaftResponse` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RaftResponse`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Err(e) => Err(e.description().to_string())
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Err(e) => Err(e.description().to_string())
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.09s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "1a38f61d463065d7f84b90b13a579fcc851eb3efc1afb183996a187d43f70b6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a38f61d463065d7f84b90b13a579fcc851eb3efc1afb183996a187d43f70b6f", kill_on_drop: false }`
[INFO] [stdout] 1a38f61d463065d7f84b90b13a579fcc851eb3efc1afb183996a187d43f70b6f
