[INFO] cloning repository https://github.com/rhelmot/shelld
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rhelmot/shelld" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhelmot%2Fshelld", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhelmot%2Fshelld'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9205dc8351af93f9b5f9a1bbd36e4d826edfd796
[INFO] checking rhelmot/shelld against try#18c1d185ac7a6a3bf399296b35e4b2736809a756 for pr-146972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhelmot%2Fshelld" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rhelmot/shelld
[INFO] finished tweaking git repo https://github.com/rhelmot/shelld
[INFO] tweaked toml for git repo https://github.com/rhelmot/shelld written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rhelmot/shelld on toolchain 18c1d185ac7a6a3bf399296b35e4b2736809a756
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rhelmot/shelld 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" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking rhelmot/shelld against try#18c1d185ac7a6a3bf399296b35e4b2736809a756 for pr-146972
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frhelmot%2Fshelld" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rhelmot/shelld
[INFO] finished tweaking git repo https://github.com/rhelmot/shelld
[INFO] tweaked toml for git repo https://github.com/rhelmot/shelld written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rhelmot/shelld on toolchain 18c1d185ac7a6a3bf399296b35e4b2736809a756
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rhelmot/shelld 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" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.27.0
[INFO] [stderr]   Downloaded signal-hook-tokio v0.3.1
[INFO] [stderr]   Downloaded hyper-tungstenite v0.18.0
[INFO] [stderr]   Downloaded tungstenite v0.27.0
[INFO] [stderr]   Downloaded pty-process v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7b6566ac8ce2d040d2c4b797655dc9e11e49e742a3af7c59c381a3fe16679950
[INFO] running `Command { std: "docker" "start" "-a" "7b6566ac8ce2d040d2c4b797655dc9e11e49e742a3af7c59c381a3fe16679950", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b6566ac8ce2d040d2c4b797655dc9e11e49e742a3af7c59c381a3fe16679950", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b6566ac8ce2d040d2c4b797655dc9e11e49e742a3af7c59c381a3fe16679950", kill_on_drop: false }`
[INFO] [stdout] 7b6566ac8ce2d040d2c4b797655dc9e11e49e742a3af7c59c381a3fe16679950
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+18c1d185ac7a6a3bf399296b35e4b2736809a756" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04f5d7b200925ac7ab98e6ca4ebd394fea211814a8a989ab9005d69d01ca15be
[INFO] running `Command { std: "docker" "start" "-a" "04f5d7b200925ac7ab98e6ca4ebd394fea211814a8a989ab9005d69d01ca15be", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking bitflags v2.9.3
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking clap_builder v4.5.46
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]     Checking pty-process v0.5.3
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tungstenite v0.27.0
[INFO] [stderr]     Checking clap v4.5.46
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-tungstenite v0.27.0
[INFO] [stderr]     Checking signal-hook-tokio v0.3.1
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking hyper-tungstenite v0.18.0
[INFO] [stderr]     Checking shelld v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]   --> src/client.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]   --> src/client.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut res = sender.send_request(req).await?;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut res = sender.send_request(req).await?;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]  --> src/client.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::{SinkExt, StreamExt};
[INFO] [stdout]   |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proc`
[INFO] [stdout]   --> src/server.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub async fn create_and_insert(proc: Child) -> (SessionStateGuard, mpsc::Receiver<Vec<u8>>, mpsc::Receiver<String>) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_proc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_id`
[INFO] [stdout]   --> src/server.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let new_id = next_counter();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]  --> src/client.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::{SinkExt, StreamExt};
[INFO] [stdout]   |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proc`
[INFO] [stdout]   --> src/server.rs:57:36
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub async fn create_and_insert(proc: Child) -> (SessionStateGuard, mpsc::Receiver<Vec<u8>>, mpsc::Receiver<String>) {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_proc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_id`
[INFO] [stdout]   --> src/server.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let new_id = next_counter();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyboard`
[INFO] [stdout]    --> src/server.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let (state, keyboard, commands) = SessionState::create_and_insert(proc).await;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyboard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/server.rs:200:35
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let (state, keyboard, commands) = SessionState::create_and_insert(proc).await;
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen`
[INFO] [stdout]    --> src/server.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let screen = state.screen_sender.clone();
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keyboard`
[INFO] [stdout]    --> src/server.rs:200:25
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let (state, keyboard, commands) = SessionState::create_and_insert(proc).await;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keyboard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/server.rs:200:35
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let (state, keyboard, commands) = SessionState::create_and_insert(proc).await;
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screen`
[INFO] [stdout]    --> src/server.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let screen = state.screen_sender.clone();
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop_at_prompt`
[INFO] [stdout]    --> src/server.rs:288:81
[INFO] [stdout]     |
[INFO] [stdout] 288 | async fn serve_websocket(websocket: HyperWebsocket, session: SessionStateGuard, stop_at_prompt: bool) -> Result<(), Error> {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stop_at_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stop_at_prompt`
[INFO] [stdout]    --> src/server.rs:288:81
[INFO] [stdout]     |
[INFO] [stdout] 288 | async fn serve_websocket(websocket: HyperWebsocket, session: SessionStateGuard, stop_at_prompt: bool) -> Result<(), Error> {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stop_at_prompt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/client.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut res = sender.send_request(req).await?;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/client.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut res = sender.send_request(req).await?;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Seized` is never constructed
[INFO] [stdout]   --> src/server.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum SessionLifecycle {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] 33 |     Detached,
[INFO] [stdout] 34 |     Seized,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SessionLifecycle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `process` is never read
[INFO] [stdout]   --> src/server.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SessionState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 40 |     id: u64,
[INFO] [stdout] 41 |     process: Child,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_session_state_oneshot` is never used
[INFO] [stdout]    --> src/server.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn with_session_state_oneshot<T>(session_id: u64, func: impl FnOnce(&mut SessionState) -> T) -> Result<T, SessionStateLookupErr...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_session_state` is never used
[INFO] [stdout]    --> src/server.rs:142:14
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub async fn with_session_state<T>(session_id: u64, mut func: impl FnMut(&mut SessionState) -> T) -> Option<T> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `session_lifecycle` is never used
[INFO] [stdout]    --> src/server.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub async fn session_lifecycle(session_id: u64) -> Option<SessionLifecycle> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Seized` is never constructed
[INFO] [stdout]   --> src/server.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum SessionLifecycle {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] 33 |     Detached,
[INFO] [stdout] 34 |     Seized,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SessionLifecycle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `process` is never read
[INFO] [stdout]   --> src/server.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SessionState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 40 |     id: u64,
[INFO] [stdout] 41 |     process: Child,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_session_state_oneshot` is never used
[INFO] [stdout]    --> src/server.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn with_session_state_oneshot<T>(session_id: u64, func: impl FnOnce(&mut SessionState) -> T) -> Result<T, SessionStateLookupErr...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_session_state` is never used
[INFO] [stdout]    --> src/server.rs:142:14
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub async fn with_session_state<T>(session_id: u64, mut func: impl FnMut(&mut SessionState) -> T) -> Option<T> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `session_lifecycle` is never used
[INFO] [stdout]    --> src/server.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub async fn session_lifecycle(session_id: u64) -> Option<SessionLifecycle> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.21s
[INFO] running `Command { std: "docker" "inspect" "04f5d7b200925ac7ab98e6ca4ebd394fea211814a8a989ab9005d69d01ca15be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04f5d7b200925ac7ab98e6ca4ebd394fea211814a8a989ab9005d69d01ca15be", kill_on_drop: false }`
[INFO] [stdout] 04f5d7b200925ac7ab98e6ca4ebd394fea211814a8a989ab9005d69d01ca15be
