[INFO] cloning repository https://github.com/raimon49/rust-channel-study
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/raimon49/rust-channel-study" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-channel-study", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-channel-study'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9b168b8e45feaa89314cd8b2d53676bd9555a058
[INFO] checking raimon49/rust-channel-study against master#8f21a5c92ea55c348c275a1bc4fedbdf181e0d64 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraimon49%2Frust-channel-study" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/raimon49/rust-channel-study
[INFO] finished tweaking git repo https://github.com/raimon49/rust-channel-study
[INFO] tweaked toml for git repo https://github.com/raimon49/rust-channel-study written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/raimon49/rust-channel-study on toolchain 8f21a5c92ea55c348c275a1bc4fedbdf181e0d64
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/raimon49/rust-channel-study 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" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2e1ad8160979ba3a550e9b97c502452b92cc64ba8ede95d2296d83392672781a
[INFO] running `Command { std: "docker" "start" "-a" "2e1ad8160979ba3a550e9b97c502452b92cc64ba8ede95d2296d83392672781a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e1ad8160979ba3a550e9b97c502452b92cc64ba8ede95d2296d83392672781a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e1ad8160979ba3a550e9b97c502452b92cc64ba8ede95d2296d83392672781a", kill_on_drop: false }`
[INFO] [stdout] 2e1ad8160979ba3a550e9b97c502452b92cc64ba8ede95d2296d83392672781a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3efcb63adb1b45de38f76c7656677d967605e5f7ed648907ccf68e9c40f77ca7
[INFO] running `Command { std: "docker" "start" "-a" "3efcb63adb1b45de38f76c7656677d967605e5f7ed648907ccf68e9c40f77ca7", kill_on_drop: false }`
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking rust-channel-study v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:159:16
[INFO] [stdout]     |
[INFO] [stdout] 159 |             if (worker_cancel_flag.load(Ordering::SeqCst)) {
[INFO] [stdout]     |                ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -             if (worker_cancel_flag.load(Ordering::SeqCst)) {
[INFO] [stdout] 159 +             if worker_cancel_flag.load(Ordering::SeqCst) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:159:16
[INFO] [stdout]     |
[INFO] [stdout] 159 |             if (worker_cancel_flag.load(Ordering::SeqCst)) {
[INFO] [stdout]     |                ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -             if (worker_cancel_flag.load(Ordering::SeqCst)) {
[INFO] [stdout] 159 +             if worker_cancel_flag.load(Ordering::SeqCst) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/main.rs:173:46
[INFO] [stdout]     |
[INFO] [stdout] 173 |         use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/main.rs:179:46
[INFO] [stdout]     |
[INFO] [stdout] 179 |         static PACKETS_SERVED: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 179 -         static PACKETS_SERVED: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 179 +         static PACKETS_SERVED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/main.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 | /         lazy_static! {
[INFO] [stdout] 192 | |             // lazy_staticクレートのlazy_static!マクロで初期化が可能
[INFO] [stdout] 193 | |             // 中の実装はstd::sync::Onceを使っている
[INFO] [stdout] 194 | |             static ref HOSTNAME: Mutex<String> = Mutex::new(String::new());
[INFO] [stdout] 195 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/main.rs:173:46
[INFO] [stdout]     |
[INFO] [stdout] 173 |         use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/main.rs:179:46
[INFO] [stdout]     |
[INFO] [stdout] 179 |         static PACKETS_SERVED: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 179 -         static PACKETS_SERVED: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 179 +         static PACKETS_SERVED: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/main.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 | /         lazy_static! {
[INFO] [stdout] 192 | |             // lazy_staticクレートのlazy_static!マクロで初期化が可能
[INFO] [stdout] 193 | |             // 中の実装はstd::sync::Onceを使っている
[INFO] [stdout] 194 | |             static ref HOSTNAME: Mutex<String> = Mutex::new(String::new());
[INFO] [stdout] 195 | |         }
[INFO] [stdout]     | |_________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `receiver`
[INFO] [stdout]   --> src/main.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let (sender, receiver) = channel();
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> src/main.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let handle = spawn(move || {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc2`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let rc2 = rc1.clone();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rc2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let app = Arc::new(FermEmpireApp {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut text = String::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `players`
[INFO] [stdout]   --> src/main.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let players = guard.split_off(0);
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_players`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OffThreadExt` is never used
[INFO] [stdout]   --> src/main.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub trait OffThreadExt: Iterator {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GAME_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |         const GAME_SIZE: usize = 8;
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num` is never read
[INFO] [stdout]   --> src/main.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         struct AppConfig {
[INFO] [stdout]    |                --------- field in this struct
[INFO] [stdout] 69 |             num: u32
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `waiting_list` are never read
[INFO] [stdout]   --> src/main.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         struct FermEmpireApp {
[INFO] [stdout]    |                ------------- fields in this struct
[INFO] [stdout] 73 |             config: RwLock<AppConfig>,
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout] 74 |             waiting_list: Mutex<WaitingList>
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `join_waiting_list`, `read_config`, and `reload_config` are never used
[INFO] [stdout]    --> src/main.rs:78:16
[INFO] [stdout]     |
[INFO] [stdout] 77  |         impl FermEmpireApp {
[INFO] [stdout]     |         ------------------ methods in this implementation
[INFO] [stdout] 78  |             fn join_waiting_list(&self, player: PlayerId) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |             fn read_config(&self) {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |             fn reload_config(&self) -> io::Result<()> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedReceiver` is never constructed
[INFO] [stdout]    --> src/main.rs:127:24
[INFO] [stdout]     |
[INFO] [stdout] 127 |             pub struct SharedReceiver<T>(Arc<Mutex<Receiver<T>>>);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shared_channel` is never used
[INFO] [stdout]    --> src/main.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |             pub fn shared_channel<T>() -> (Sender<T>, SharedReceiver<T>) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `clone` that must be used
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     rc1.clone();
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: cloning is often expensive and is not expected to have side effects
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let _ = rc1.clone();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `receiver`
[INFO] [stdout]   --> src/main.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let (sender, receiver) = channel();
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]   --> src/main.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let handle = spawn(move || {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc2`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let rc2 = rc1.clone();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rc2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/main.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let app = Arc::new(FermEmpireApp {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut text = String::new();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `players`
[INFO] [stdout]   --> src/main.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let players = guard.split_off(0);
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_players`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `clone` that must be used
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     rc1.clone();
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: cloning is often expensive and is not expected to have side effects
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let _ = rc1.clone();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] running `Command { std: "docker" "inspect" "3efcb63adb1b45de38f76c7656677d967605e5f7ed648907ccf68e9c40f77ca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3efcb63adb1b45de38f76c7656677d967605e5f7ed648907ccf68e9c40f77ca7", kill_on_drop: false }`
[INFO] [stdout] 3efcb63adb1b45de38f76c7656677d967605e5f7ed648907ccf68e9c40f77ca7
