[INFO] cloning repository https://github.com/garrettkolson/pneumatic_core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/garrettkolson/pneumatic_core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarrettkolson%2Fpneumatic_core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarrettkolson%2Fpneumatic_core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 47d62e6fc6c353da267d13209ab7da18224f1e1f [INFO] testing garrettkolson/pneumatic_core against master#414482f6a0d4e7290f614300581a0b55442552a3 for pr-140985 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarrettkolson%2Fpneumatic_core" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/garrettkolson/pneumatic_core on toolchain 414482f6a0d4e7290f614300581a0b55442552a3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/garrettkolson/pneumatic_core [INFO] finished tweaking git repo https://github.com/garrettkolson/pneumatic_core [INFO] tweaked toml for git repo https://github.com/garrettkolson/pneumatic_core written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/garrettkolson/pneumatic_core 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" "+414482f6a0d4e7290f614300581a0b55442552a3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dashmap v7.0.0-rc2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ab4b61d833af73ab358fea873795b2568d3bf2e11cf8b99f524186b488321352 [INFO] running `Command { std: "docker" "start" "-a" "ab4b61d833af73ab358fea873795b2568d3bf2e11cf8b99f524186b488321352", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ab4b61d833af73ab358fea873795b2568d3bf2e11cf8b99f524186b488321352", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab4b61d833af73ab358fea873795b2568d3bf2e11cf8b99f524186b488321352", kill_on_drop: false }` [INFO] [stdout] ab4b61d833af73ab358fea873795b2568d3bf2e11cf8b99f524186b488321352 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 734cb6ea5647cca1a1f30995648cc865d172fb29293d1c396bea425cf8e2d7f8 [INFO] running `Command { std: "docker" "start" "-a" "734cb6ea5647cca1a1f30995648cc865d172fb29293d1c396bea425cf8e2d7f8", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Compiling portable-atomic v1.11.0 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling bytes v1.6.1 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling cc v1.2.20 [INFO] [stderr] Compiling moka v0.12.10 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling iana-time-zone v0.1.60 [INFO] [stderr] Compiling hashbrown v0.15.3 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling tagptr v0.2.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling strum v0.27.1 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-channel v0.5.13 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling mio v1.0.3 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling file-lock v2.1.11 [INFO] [stderr] Compiling rmp v0.8.14 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling uuid v1.9.1 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling dashmap v7.0.0-rc2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling strum_macros v0.27.1 [INFO] [stderr] Compiling tokio v1.44.2 [INFO] [stderr] Compiling rmp-serde v1.3.0 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling pneumatic_core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::conns::factories::IsConnFactory` [INFO] [stdout] --> src/node.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::conns::factories::IsConnFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::conns::streams::Stream` [INFO] [stdout] --> src/node.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::conns::streams::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IpAddr` and `Ipv4Addr` [INFO] [stdout] --> src/conns/factories.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/conns/senders.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnTarget` [INFO] [stdout] --> src/conns/senders.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::conns::{ConnError, ConnTarget}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc::Receiver` [INFO] [stdout] --> src/server.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::mpsc::Receiver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::IpAddr::V4` [INFO] [stdout] --> src/data.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::IpAddr::V4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IpAddr` [INFO] [stdout] --> src/data.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/data.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `moka::sync::Cache` [INFO] [stdout] --> src/data.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use moka::sync::Cache; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `OnceLock`, and `RwLock` [INFO] [stdout] --> src/data.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::{Arc, OnceLock, RwLock}; [INFO] [stdout] | ^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/data.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::error::Category::Data` [INFO] [stdout] --> src/data.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use serde_json::error::Category::Data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> src/tokens.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/tokens.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encoding::serialize_to_bytes_rmp` [INFO] [stdout] --> src/tokens.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::encoding::serialize_to_bytes_rmp; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/blocks.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/blocks.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use chrono::{Utc, prelude::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/conns.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/node.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use strum::IntoEnumIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> src/conns.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/conns.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncReadExt` [INFO] [stdout] --> src/conns.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `registration_batch` [INFO] [stdout] --> src/node/registry.rs:189:36 [INFO] [stdout] | [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registration_batch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns.rs:38:81 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn send_on_thread(cloned_data: Arc>>, conn: Box, addr: SocketAddr) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conns.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | let (mut reader, mut writer) = stream.into_split()?; [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: variable does not need to be mutable [INFO] [stdout] --> src/config.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut environment_metadata = DashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:32:23 [INFO] [stdout] | [INFO] [stdout] 32 | fn encrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | fn decrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signature` [INFO] [stdout] --> src/crypto.rs:40:31 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:40:52 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | fn sign_data(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | fn hash(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/tokens.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/tokens.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/node.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 77 | impl NodeRegistryNode { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 78 | fn new(ip: IpAddr, conn: Box) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NodeRegistry` is never constructed [INFO] [stdout] --> src/node/registry.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct NodeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/node/registry.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 27 | impl NodeRegistry { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 28 | const LISTENER_THREAD_COUNT: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | [INFO] [stdout] 30 | pub fn init(config: Arc, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get_nodes(&self, node_type: &NodeRegistryType) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn node_is_already_registered(&self, key: &Vec, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn type_is_maxed_out(&self, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn listen_for_conn_requests(registry: Arc, this_func_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | async fn process_conn_request(&self, data: Vec, mut stream: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn register_connection(&self, conn: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn can_accept_this_connection(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn check_db_node_user(user_key: &Vec, environment_id: &str, min_stake: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn select_registration_node_type(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn can_select_this_type(&self, request: &NodeRegistryRequest, node_type: NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn send_to_all(&self, data: Vec, node_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listening_thread` is never read [INFO] [stdout] --> src/conns.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct TcpConnection { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 85 | writer: Box, [INFO] [stdout] 86 | listening_thread: tokio::task::JoinHandle<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_block` is never used [INFO] [stdout] --> src/blocks.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl Block { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | fn test_block(prev_hash: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.99s [INFO] running `Command { std: "docker" "inspect" "734cb6ea5647cca1a1f30995648cc865d172fb29293d1c396bea425cf8e2d7f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "734cb6ea5647cca1a1f30995648cc865d172fb29293d1c396bea425cf8e2d7f8", kill_on_drop: false }` [INFO] [stdout] 734cb6ea5647cca1a1f30995648cc865d172fb29293d1c396bea425cf8e2d7f8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3bd7d9ce443cbb2ec10173006a5182554a33b8d546e48bafc90621f86367a712 [INFO] running `Command { std: "docker" "start" "-a" "3bd7d9ce443cbb2ec10173006a5182554a33b8d546e48bafc90621f86367a712", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `crate::conns::factories::IsConnFactory` [INFO] [stdout] --> src/node.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::conns::factories::IsConnFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::conns::streams::Stream` [INFO] [stdout] --> src/node.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::conns::streams::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pneumatic_core v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `IpAddr` and `Ipv4Addr` [INFO] [stdout] --> src/conns/factories.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/conns/senders.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnTarget` [INFO] [stdout] --> src/conns/senders.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::conns::{ConnError, ConnTarget}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc::Receiver` [INFO] [stdout] --> src/server.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::mpsc::Receiver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::IpAddr::V4` [INFO] [stdout] --> src/data.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::IpAddr::V4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IpAddr` [INFO] [stdout] --> src/data.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/data.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `moka::sync::Cache` [INFO] [stdout] --> src/data.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use moka::sync::Cache; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `OnceLock`, and `RwLock` [INFO] [stdout] --> src/data.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::{Arc, OnceLock, RwLock}; [INFO] [stdout] | ^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/data.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::error::Category::Data` [INFO] [stdout] --> src/data.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use serde_json::error::Category::Data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> src/tokens.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/tokens.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encoding::serialize_to_bytes_rmp` [INFO] [stdout] --> src/tokens.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::encoding::serialize_to_bytes_rmp; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/blocks.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/blocks.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use chrono::{Utc, prelude::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/conns.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/node.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use strum::IntoEnumIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> src/conns.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/conns.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncReadExt` [INFO] [stdout] --> src/conns.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `registration_batch` [INFO] [stdout] --> src/node/registry.rs:189:36 [INFO] [stdout] | [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registration_batch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns.rs:38:81 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn send_on_thread(cloned_data: Arc>>, conn: Box, addr: SocketAddr) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conns.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | let (mut reader, mut writer) = stream.into_split()?; [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: variable does not need to be mutable [INFO] [stdout] --> src/config.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut environment_metadata = DashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:32:23 [INFO] [stdout] | [INFO] [stdout] 32 | fn encrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | fn decrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signature` [INFO] [stdout] --> src/crypto.rs:40:31 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:40:52 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | fn sign_data(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | fn hash(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/tokens.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/tokens.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/node.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 77 | impl NodeRegistryNode { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 78 | fn new(ip: IpAddr, conn: Box) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NodeRegistry` is never constructed [INFO] [stdout] --> src/node/registry.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct NodeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/node/registry.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 27 | impl NodeRegistry { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 28 | const LISTENER_THREAD_COUNT: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | [INFO] [stdout] 30 | pub fn init(config: Arc, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get_nodes(&self, node_type: &NodeRegistryType) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn node_is_already_registered(&self, key: &Vec, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn type_is_maxed_out(&self, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn listen_for_conn_requests(registry: Arc, this_func_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | async fn process_conn_request(&self, data: Vec, mut stream: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn register_connection(&self, conn: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn can_accept_this_connection(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn check_db_node_user(user_key: &Vec, environment_id: &str, min_stake: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn select_registration_node_type(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn can_select_this_type(&self, request: &NodeRegistryRequest, node_type: NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn send_to_all(&self, data: Vec, node_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listening_thread` is never read [INFO] [stdout] --> src/conns.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct TcpConnection { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 85 | writer: Box, [INFO] [stdout] 86 | listening_thread: tokio::task::JoinHandle<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `test_block` is never used [INFO] [stdout] --> src/blocks.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl Block { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | fn test_block(prev_hash: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::conns::factories::IsConnFactory` [INFO] [stdout] --> src/node.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::conns::factories::IsConnFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::conns::streams::Stream` [INFO] [stdout] --> src/node.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::conns::streams::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IpAddr` and `Ipv4Addr` [INFO] [stdout] --> src/conns/factories.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/conns/senders.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnTarget` [INFO] [stdout] --> src/conns/senders.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::conns::{ConnError, ConnTarget}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc::Receiver` [INFO] [stdout] --> src/server.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::mpsc::Receiver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::IpAddr::V4` [INFO] [stdout] --> src/data.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::IpAddr::V4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IpAddr` [INFO] [stdout] --> src/data.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/data.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `moka::sync::Cache` [INFO] [stdout] --> src/data.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use moka::sync::Cache; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `OnceLock`, and `RwLock` [INFO] [stdout] --> src/data.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::{Arc, OnceLock, RwLock}; [INFO] [stdout] | ^^^ ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/data.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::error::Category::Data` [INFO] [stdout] --> src/data.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use serde_json::error::Category::Data; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind` and `Error` [INFO] [stdout] --> src/tokens.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/tokens.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encoding::serialize_to_bytes_rmp` [INFO] [stdout] --> src/tokens.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::encoding::serialize_to_bytes_rmp; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/blocks.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncWriteExt` [INFO] [stdout] --> src/conns.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/blocks.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use chrono::{Utc, prelude::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::IntoEnumIterator` [INFO] [stdout] --> src/node.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use strum::IntoEnumIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/conns.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncReadExt` [INFO] [stdout] --> src/conns.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/conns.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `registration_batch` [INFO] [stdout] --> src/node/registry.rs:189:36 [INFO] [stdout] | [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registration_batch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:26:22 [INFO] [stdout] | [INFO] [stdout] 26 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns/listeners.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/conns.rs:38:81 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn send_on_thread(cloned_data: Arc>>, conn: Box, addr: SocketAddr) [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/conns.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | let (mut reader, mut writer) = stream.into_split()?; [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: `pool` [INFO] [stdout] --> src/server.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | let pool = ThreadPool::new(0); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/server.rs:200:14 [INFO] [stdout] | [INFO] [stdout] 200 | let (sender, receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `async_sender` [INFO] [stdout] --> src/server.rs:201:14 [INFO] [stdout] | [INFO] [stdout] 201 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `stuff` is never read [INFO] [stdout] --> src/server.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | stuff = "more stuff"; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/server.rs:221:14 [INFO] [stdout] | [INFO] [stdout] 221 | let (sender, receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `async_sender` [INFO] [stdout] --> src/server.rs:230:14 [INFO] [stdout] | [INFO] [stdout] 230 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/server.rs:226:17 [INFO] [stdout] | [INFO] [stdout] 226 | let data = cloned_mutex.lock().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `stuff` is never read [INFO] [stdout] --> src/server.rs:247:13 [INFO] [stdout] | [INFO] [stdout] 247 | stuff = "different stuff"; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/server.rs:255:14 [INFO] [stdout] | [INFO] [stdout] 255 | let (sender, receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `async_sender` [INFO] [stdout] --> src/server.rs:256:14 [INFO] [stdout] | [INFO] [stdout] 256 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/server.rs:261:17 [INFO] [stdout] | [INFO] [stdout] 261 | let data = cloned_mutex.lock().await; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/config.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut environment_metadata = DashMap::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:32:23 [INFO] [stdout] | [INFO] [stdout] 32 | fn encrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | fn decrypt(&self, data: Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signature` [INFO] [stdout] --> src/crypto.rs:40:31 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:40:52 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | fn sign_data(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/crypto.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | fn hash(&self, data: &Vec) -> Vec { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/tokens.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/tokens.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `log_text` [INFO] [stdout] --> src/logging.rs:54:16 [INFO] [stdout] | [INFO] [stdout] 54 | let Ok(log_text) = file.file.read_to_string(&mut buffer) [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_log_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/node.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 77 | impl NodeRegistryNode { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 78 | fn new(ip: IpAddr, conn: Box) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NodeRegistry` is never constructed [INFO] [stdout] --> src/node/registry.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct NodeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/node/registry.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 27 | impl NodeRegistry { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 28 | const LISTENER_THREAD_COUNT: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | [INFO] [stdout] 30 | pub fn init(config: Arc, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn get_nodes(&self, node_type: &NodeRegistryType) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn node_is_already_registered(&self, key: &Vec, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn type_is_maxed_out(&self, node_type: &NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn listen_for_conn_requests(registry: Arc, this_func_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | async fn process_conn_request(&self, data: Vec, mut stream: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn register_connection(&self, conn: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn can_accept_this_connection(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn check_db_node_user(user_key: &Vec, environment_id: &str, min_stake: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn select_registration_node_type(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn can_select_this_type(&self, request: &NodeRegistryRequest, node_type: NodeRegistryType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn send_to_all(&self, data: Vec, node_type: &NodeRegistryType) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listening_thread` is never read [INFO] [stdout] --> src/conns.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 84 | struct TcpConnection { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 85 | writer: Box, [INFO] [stdout] 86 | listening_thread: tokio::task::JoinHandle<()> [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.85s [INFO] running `Command { std: "docker" "inspect" "3bd7d9ce443cbb2ec10173006a5182554a33b8d546e48bafc90621f86367a712", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3bd7d9ce443cbb2ec10173006a5182554a33b8d546e48bafc90621f86367a712", kill_on_drop: false }` [INFO] [stdout] 3bd7d9ce443cbb2ec10173006a5182554a33b8d546e48bafc90621f86367a712 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+414482f6a0d4e7290f614300581a0b55442552a3" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 151709216ef96b7df9f89e94a7e83021c5b3d791ce2e0cd9a94ab7d226d962bd [INFO] running `Command { std: "docker" "start" "-a" "151709216ef96b7df9f89e94a7e83021c5b3d791ce2e0cd9a94ab7d226d962bd", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::conns::factories::IsConnFactory` [INFO] [stderr] --> src/node.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use crate::conns::factories::IsConnFactory; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::conns::streams::Stream` [INFO] [stderr] --> src/node.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::conns::streams::Stream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IpAddr` and `Ipv4Addr` [INFO] [stderr] --> src/conns/factories.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::PathBuf` [INFO] [stderr] --> src/conns/senders.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::PathBuf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ConnTarget` [INFO] [stderr] --> src/conns/senders.rs:6:31 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::conns::{ConnError, ConnTarget}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::sync::mpsc::Receiver` [INFO] [stderr] --> src/server.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use tokio::sync::mpsc::Receiver; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::IpAddr::V4` [INFO] [stderr] --> src/data.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::net::IpAddr::V4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IpAddr` [INFO] [stderr] --> src/data.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::net::{IpAddr, Ipv4Addr, SocketAddr, SocketAddrV4}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/data.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `moka::sync::Cache` [INFO] [stderr] --> src/data.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use moka::sync::Cache; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arc`, `OnceLock`, and `RwLock` [INFO] [stderr] --> src/data.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | use std::sync::{Arc, OnceLock, RwLock}; [INFO] [stderr] | ^^^ ^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/data.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::error::Category::Data` [INFO] [stderr] --> src/data.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use serde_json::error::Category::Data; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind` and `Error` [INFO] [stderr] --> src/tokens.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{Error, ErrorKind}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/tokens.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::encoding::serialize_to_bytes_rmp` [INFO] [stderr] --> src/tokens.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::encoding::serialize_to_bytes_rmp; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/blocks.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `prelude` [INFO] [stderr] --> src/blocks.rs:4:19 [INFO] [stderr] | [INFO] [stderr] 4 | use chrono::{Utc, prelude::*}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Write` [INFO] [stderr] --> src/conns.rs:7:21 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::{Read, Write}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `strum::IntoEnumIterator` [INFO] [stderr] --> src/node.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use strum::IntoEnumIterator; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Read` [INFO] [stderr] --> src/node.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::Read; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AsyncWriteExt` [INFO] [stderr] --> src/conns.rs:13:31 [INFO] [stderr] | [INFO] [stderr] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/conns.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::{Read, Write}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AsyncReadExt` [INFO] [stderr] --> src/conns.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | use tokio::io::{AsyncReadExt, AsyncWriteExt}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `registration_batch` [INFO] [stderr] --> src/node/registry.rs:189:36 [INFO] [stderr] | [INFO] [stderr] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_registration_batch` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/conns/listeners.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/conns/listeners.rs:47:22 [INFO] [stderr] | [INFO] [stderr] 47 | let (stream, addr) = self.inner_listener.accept()?; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/conns.rs:38:81 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn send_on_thread(cloned_data: Arc>>, conn: Box, addr: SocketAddr) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/conns.rs:93:26 [INFO] [stderr] | [INFO] [stderr] 93 | let (mut reader, mut writer) = stream.into_split()?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/config.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | let mut environment_metadata = DashMap::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/crypto.rs:32:23 [INFO] [stderr] | [INFO] [stderr] 32 | fn encrypt(&self, data: Vec) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/crypto.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | fn decrypt(&self, data: Vec) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `signature` [INFO] [stderr] --> src/crypto.rs:40:31 [INFO] [stderr] | [INFO] [stderr] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/crypto.rs:40:52 [INFO] [stderr] | [INFO] [stderr] 40 | fn check_signature(&self, signature: &Vec, data: &Vec) -> bool { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/crypto.rs:44:25 [INFO] [stderr] | [INFO] [stderr] 44 | fn sign_data(&self, data: &Vec) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/crypto.rs:56:20 [INFO] [stderr] | [INFO] [stderr] 56 | fn hash(&self, data: &Vec) -> Vec { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `block` [INFO] [stderr] --> src/tokens.rs:113:24 [INFO] [stderr] | [INFO] [stderr] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `token` [INFO] [stderr] --> src/tokens.rs:113:39 [INFO] [stderr] | [INFO] [stderr] 113 | fn validate(&self, block: &Block, token: &Token) -> BlockValidationResult { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/node.rs:78:8 [INFO] [stderr] | [INFO] [stderr] 77 | impl NodeRegistryNode { [INFO] [stderr] | --------------------- associated function in this implementation [INFO] [stderr] 78 | fn new(ip: IpAddr, conn: Box) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct `NodeRegistry` is never constructed [INFO] [stderr] --> src/node/registry.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct NodeRegistry { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/node/registry.rs:28:11 [INFO] [stderr] | [INFO] [stderr] 27 | impl NodeRegistry { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 28 | const LISTENER_THREAD_COUNT: usize = 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 29 | [INFO] [stderr] 30 | pub fn init(config: Arc, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn get_nodes(&self, node_type: &NodeRegistryType) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | pub fn node_is_already_registered(&self, key: &Vec, node_type: &NodeRegistryType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 62 | fn type_is_maxed_out(&self, node_type: &NodeRegistryType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn listen_for_conn_requests(registry: Arc, this_func_type: &NodeRegistryType) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 93 | async fn process_conn_request(&self, data: Vec, mut stream: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | fn register_connection(&self, conn: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 120 | fn can_accept_this_connection(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 133 | fn check_db_node_user(user_key: &Vec, environment_id: &str, min_stake: u64) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | fn select_registration_node_type(&self, request: &NodeRegistryRequest) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 160 | fn can_select_this_type(&self, request: &NodeRegistryRequest, node_type: NodeRegistryType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 164 | pub fn send_to_all(&self, data: Vec, node_type: &NodeRegistryType) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | fn process_registration(&self, registration_batch: RegistrationBatch) -> RegistrationBatchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `listening_thread` is never read [INFO] [stderr] --> src/conns.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 84 | struct TcpConnection { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] 85 | writer: Box, [INFO] [stderr] 86 | listening_thread: tokio::task::JoinHandle<()> [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `test_block` is never used [INFO] [stderr] --> src/blocks.rs:36:8 [INFO] [stderr] | [INFO] [stderr] 18 | impl Block { [INFO] [stderr] | ---------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 36 | fn test_block(prev_hash: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pool` [INFO] [stderr] --> src/server.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | let pool = ThreadPool::new(0); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pool` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sender` [INFO] [stderr] --> src/server.rs:200:14 [INFO] [stderr] | [INFO] [stderr] 200 | let (sender, receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `async_sender` [INFO] [stderr] --> src/server.rs:201:14 [INFO] [stderr] | [INFO] [stderr] 201 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stderr] [INFO] [stderr] warning: value captured by `stuff` is never read [INFO] [stderr] --> src/server.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | stuff = "more stuff"; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: did you mean to capture by reference instead? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sender` [INFO] [stderr] --> src/server.rs:221:14 [INFO] [stderr] | [INFO] [stderr] 221 | let (sender, receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `async_sender` [INFO] [stderr] --> src/server.rs:230:14 [INFO] [stderr] | [INFO] [stderr] 230 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/server.rs:226:17 [INFO] [stderr] | [INFO] [stderr] 226 | let data = cloned_mutex.lock().unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: value captured by `stuff` is never read [INFO] [stderr] --> src/server.rs:247:13 [INFO] [stderr] | [INFO] [stderr] 247 | stuff = "different stuff"; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: did you mean to capture by reference instead? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sender` [INFO] [stderr] --> src/server.rs:255:14 [INFO] [stderr] | [INFO] [stderr] 255 | let (sender, receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `async_sender` [INFO] [stderr] --> src/server.rs:256:14 [INFO] [stderr] | [INFO] [stderr] 256 | let (async_sender, async_receiver) = mpsc::channel::(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_async_sender` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/server.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | let data = cloned_mutex.lock().await; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `log_text` [INFO] [stderr] --> src/logging.rs:54:16 [INFO] [stderr] | [INFO] [stderr] 54 | let Ok(log_text) = file.file.read_to_string(&mut buffer) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_log_text` [INFO] [stderr] [INFO] [stderr] warning: `pneumatic_core` (lib) generated 43 warnings (run `cargo fix --lib -p pneumatic_core` to apply 19 suggestions) [INFO] [stderr] warning: `pneumatic_core` (lib test) generated 54 warnings (42 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pneumatic_core-88b95f1b5b7c3481) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test blocks::tests::get_current_chain_state_with_empty_chain ... ok [INFO] [stdout] test blocks::tests::validate_next_block_with_invalid_previous_hash ... ok [INFO] [stdout] test blocks::tests::get_current_chain_state_with_valid_chain ... ok [INFO] [stdout] test blocks::tests::validate_next_block_with_invalid_block_hash ... ok [INFO] [stdout] test blocks::tests::get_current_chain_state_with_invalid_chain ... ok [INFO] [stdout] test server::tests::calling_thread_pool_build_with_zero_threads_returns_pool_creation_error ... ok [INFO] [stdout] test blocks::tests::validate_next_block_with_valid_block ... ok [INFO] [stdout] test server::tests::calling_worker_new_returns_new_worker ... ok [INFO] [stdout] test server::tests::calling_thread_pool_execute_should_run_the_closure ... ok [INFO] [stdout] test server::tests::calling_thread_pool_execute_async_should_run_closure ... ok [INFO] [stdout] test logging::tests::logger_should_log_message_to_file ... FAILED [INFO] [stdout] test server::tests::calling_thread_pool_new_with_zero_threads_panics - should panic ... ok [INFO] [stdout] test server::tests::calling_thread_pool_execute_with_poisoned_mutex_should_not_run_the_closure ... ok [INFO] [stdout] test server::tests::calling_thread_pool_build_with_more_than_zero_threads_returns_ok ... ok [INFO] [stdout] test server::tests::calling_thread_pool_new_with_more_than_zero_returns_thread_pool_with_correct_number_of_workers ... ok [INFO] [stdout] test server::tests::calling_thread_pool_execute_async_with_poisoned_mutex_should_not_run_the_closure has been running for over 60 seconds [ERROR] error running command: no output for 300 seconds [INFO] running `Command { std: "docker" "inspect" "151709216ef96b7df9f89e94a7e83021c5b3d791ce2e0cd9a94ab7d226d962bd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "151709216ef96b7df9f89e94a7e83021c5b3d791ce2e0cd9a94ab7d226d962bd", kill_on_drop: false }` [INFO] [stdout] 151709216ef96b7df9f89e94a7e83021c5b3d791ce2e0cd9a94ab7d226d962bd