[INFO] fetching crate rumqtt 0.31.0... [INFO] checking rumqtt-0.31.0 against try#23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 for pr-115950 [INFO] extracting crate rumqtt 0.31.0 into /workspace/builds/worker-0-tc2/source [INFO] validating manifest of crates.io crate rumqtt 0.31.0 on toolchain 23ffd2897cbb44320ca18dfe4d05dbacb37d55e0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate rumqtt 0.31.0 [INFO] finished tweaking crates.io crate rumqtt 0.31.0 [INFO] tweaked toml for crates.io crate rumqtt 0.31.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 79d206060c665ad0e472484bec782c6a672b374347d92735457fa3c9df550927 [INFO] running `Command { std: "docker" "start" "-a" "79d206060c665ad0e472484bec782c6a672b374347d92735457fa3c9df550927", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "79d206060c665ad0e472484bec782c6a672b374347d92735457fa3c9df550927", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "79d206060c665ad0e472484bec782c6a672b374347d92735457fa3c9df550927", kill_on_drop: false }` [INFO] [stdout] 79d206060c665ad0e472484bec782c6a672b374347d92735457fa3c9df550927 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4f8da3c744d2da974e54ce020a79f4ad54313e914ebeaab8fc086f07e8d8b066" "/opt/rustwide/cargo-home/bin/cargo" "+23ffd2897cbb44320ca18dfe4d05dbacb37d55e0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 81929aa65d9fa2ad1feab259e05f34ecd033f1152f45c023b3da5062bfcdcbdd [INFO] running `Command { std: "docker" "start" "-a" "81929aa65d9fa2ad1feab259e05f34ecd033f1152f45c023b3da5062bfcdcbdd", kill_on_drop: false }` [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Checking futures v0.1.31 [INFO] [stderr] Compiling autocfg v0.1.8 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking untrusted v0.6.2 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Checking net2 v0.2.39 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Checking base64 v0.10.1 [INFO] [stderr] Compiling serde_json v1.0.107 [INFO] [stderr] Checking chrono v0.4.31 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Compiling syn v2.0.37 [INFO] [stderr] Checking humantime v1.3.0 [INFO] [stderr] Compiling parking_lot_core v0.6.3 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking crossbeam-utils v0.6.6 [INFO] [stderr] Checking termcolor v1.3.0 [INFO] [stderr] Checking envy v0.3.3 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking env_logger v0.6.2 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Checking crossbeam-channel v0.3.9 [INFO] [stderr] Checking tokio-executor v0.1.10 [INFO] [stderr] Checking tokio-io v0.1.13 [INFO] [stderr] Checking tokio-sync v0.1.8 [INFO] [stderr] Compiling ring v0.14.6 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Checking crossbeam-deque v0.7.4 [INFO] [stderr] Checking tokio-current-thread v0.1.7 [INFO] [stderr] Checking tokio-timer v0.2.13 [INFO] [stderr] Checking tokio-threadpool v0.1.18 [INFO] [stderr] Checking tokio-codec v0.1.2 [INFO] [stderr] Checking tokio-reactor v0.1.12 [INFO] [stderr] Checking uuid v0.7.4 [INFO] [stderr] Checking pretty_env_logger v0.3.1 [INFO] [stderr] Checking tokio-tcp v0.1.4 [INFO] [stderr] Checking tokio v0.1.22 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling derive_more v0.13.0 [INFO] [stderr] Checking sct v0.5.0 [INFO] [stderr] Checking webpki v0.19.1 [INFO] [stderr] Checking rustls v0.15.2 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Compiling serde_derive v1.0.188 [INFO] [stderr] Checking mqtt311 v0.2.0 [INFO] [stderr] Checking tokio-rustls v0.9.4 [INFO] [stderr] Checking jsonwebtoken v6.0.1 [INFO] [stderr] Checking rumqtt v0.31.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0502]: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/client/connection.rs:224:38 [INFO] [stdout] | [INFO] [stdout] 214 | fn mqtt_future(&mut self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 223 | let network_request_stream = self.inflight_limited_request_stream(network_request_stream); [INFO] [stdout] | ------------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'1` [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> src/client/connection.rs:225:38 [INFO] [stdout] | [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ---- first mutable borrow occurs here [INFO] [stdout] 225 | let network_request_stream = self.user_requests(network_request_stream); [INFO] [stdout] | ^^^^ ---------------------- first borrow later used here [INFO] [stdout] | | [INFO] [stdout] | second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/client/connection.rs:233:44 [INFO] [stdout] | [INFO] [stdout] 214 | fn mqtt_future(&mut self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ----------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 233 | let network_reply_stream = self.network_reply_stream(network_stream); [INFO] [stdout] | ^^^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/client/connection.rs:224:38 [INFO] [stdout] | [INFO] [stdout] 214 | fn mqtt_future(&mut self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 223 | let network_request_stream = self.inflight_limited_request_stream(network_request_stream); [INFO] [stdout] | ------------------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'1` [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> src/client/connection.rs:225:38 [INFO] [stdout] | [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ---- first mutable borrow occurs here [INFO] [stdout] 225 | let network_request_stream = self.user_requests(network_request_stream); [INFO] [stdout] | ^^^^ ---------------------- first borrow later used here [INFO] [stdout] | | [INFO] [stdout] | second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/client/connection.rs:233:44 [INFO] [stdout] | [INFO] [stdout] 214 | fn mqtt_future(&mut self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 224 | let network_request_stream = self.throttled_network_stream(network_request_stream); [INFO] [stdout] | ----------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 233 | let network_reply_stream = self.network_reply_stream(network_stream); [INFO] [stdout] | ^^^^ immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:350:17 [INFO] [stdout] | [INFO] [stdout] 341 | let mqtt_state_ping = self.mqtt_state.clone(); [INFO] [stdout] | --------------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 347 | .or_else(move |e| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 348 | debug!("Idle network incoming timeout"); [INFO] [stdout] 349 | let mut mqtt_state = mqtt_state_ping.borrow_mut(); [INFO] [stdout] | --------------- variable captured here [INFO] [stdout] 350 | handle_incoming_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:350:17 [INFO] [stdout] | [INFO] [stdout] 350 | handle_incoming_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:358:17 [INFO] [stdout] | [INFO] [stdout] 344 | let notification_tx = self.notification_tx.clone(); [INFO] [stdout] | --------------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 357 | .and_then(move |(notification, reply)| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 358 | handle_notification_and_reply(¬ification_tx, notification, reply) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | variable captured here [INFO] [stdout] | returns a reference to a captured variable which escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 363 | let mqtt_state = self.mqtt_state.clone(); [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 374 | .or_else(move |e| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 375 | debug!("Idle network reply timeout"); [INFO] [stdout] 376 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- variable captured here [INFO] [stdout] 377 | handle_outgoing_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 377 | handle_outgoing_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:350:17 [INFO] [stdout] | [INFO] [stdout] 341 | let mqtt_state_ping = self.mqtt_state.clone(); [INFO] [stdout] | --------------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 347 | .or_else(move |e| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 348 | debug!("Idle network incoming timeout"); [INFO] [stdout] 349 | let mut mqtt_state = mqtt_state_ping.borrow_mut(); [INFO] [stdout] | --------------- variable captured here [INFO] [stdout] 350 | handle_incoming_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:350:17 [INFO] [stdout] | [INFO] [stdout] 350 | handle_incoming_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:398:17 [INFO] [stdout] | [INFO] [stdout] 390 | let mqtt_state = self.mqtt_state.clone(); [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 396 | .and_then(move |userrequest| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 397 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- variable captured here [INFO] [stdout] 398 | validate_userrequest(userrequest, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a reference to a captured variable which escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:398:17 [INFO] [stdout] | [INFO] [stdout] 398 | validate_userrequest(userrequest, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:358:17 [INFO] [stdout] | [INFO] [stdout] 344 | let notification_tx = self.notification_tx.clone(); [INFO] [stdout] | --------------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 357 | .and_then(move |(notification, reply)| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 358 | handle_notification_and_reply(¬ification_tx, notification, reply) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | variable captured here [INFO] [stdout] | returns a reference to a captured variable which escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `host` does not live long enough [INFO] [stdout] --> src/client/connection.rs:315:25 [INFO] [stdout] | [INFO] [stdout] 285 | fn tcp_connect_future(&self) -> impl Future { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 286 | let (host, port) = self.mqttoptions.broker_address(); [INFO] [stdout] | ---- binding `host` declared here [INFO] [stdout] ... [INFO] [stdout] 315 | builder.connect(&host, port) [INFO] [stdout] | ----------------^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `host` is borrowed for `'1` [INFO] [stdout] 316 | } [INFO] [stdout] | - `host` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 363 | let mqtt_state = self.mqtt_state.clone(); [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 374 | .or_else(move |e| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 375 | debug!("Idle network reply timeout"); [INFO] [stdout] 376 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- variable captured here [INFO] [stdout] 377 | handle_outgoing_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a closure that contains a reference to a captured variable, which then escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:377:17 [INFO] [stdout] | [INFO] [stdout] 377 | handle_outgoing_stream_timeout_error(e, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `self` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:29 [INFO] [stdout] | [INFO] [stdout] 188 | mut self, [INFO] [stdout] | -------- binding `self` declared here [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ^^^^-------------------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `self` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `id` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:47 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | -- binding `id` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ------------------^^^--------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `id` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `id` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `proxy_host` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:52 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | ---------- binding `proxy_host` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | -----------------------^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `proxy_host` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `proxy_host` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `host_tcp` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:77 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 193 | let host_tcp = host.to_owned(); [INFO] [stdout] | -------- binding `host_tcp` declared here [INFO] [stdout] ... [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ------------------------------------------------^^^^^^^^^--------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `host_tcp` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `host_tcp` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `key` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:94 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | --- binding `key` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | -----------------------------------------------------------------^^^^--------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `key` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `key` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `self` does not live long enough [INFO] [stdout] --> src/client/network.rs:201:29 [INFO] [stdout] | [INFO] [stdout] 188 | mut self, [INFO] [stdout] | -------- binding `self` declared here [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 201 | let s = self.tcp_connect(host, port); [INFO] [stdout] | ^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `self` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: captured variable cannot escape `FnMut` closure body [INFO] [stdout] --> src/client/connection.rs:398:17 [INFO] [stdout] | [INFO] [stdout] 390 | let mqtt_state = self.mqtt_state.clone(); [INFO] [stdout] | ---------- variable defined here [INFO] [stdout] ... [INFO] [stdout] 396 | .and_then(move |userrequest| { [INFO] [stdout] | - inferred to be a `FnMut` closure [INFO] [stdout] 397 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- variable captured here [INFO] [stdout] 398 | validate_userrequest(userrequest, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a reference to a captured variable which escapes the closure body [INFO] [stdout] | [INFO] [stdout] = note: `FnMut` closures only have access to their captured variables while they are executing... [INFO] [stdout] = note: ...therefore, they cannot allow references to captured variables to escape [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:398:17 [INFO] [stdout] | [INFO] [stdout] 398 | validate_userrequest(userrequest, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `host` does not live long enough [INFO] [stdout] --> src/client/connection.rs:315:25 [INFO] [stdout] | [INFO] [stdout] 285 | fn tcp_connect_future(&self) -> impl Future { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 286 | let (host, port) = self.mqttoptions.broker_address(); [INFO] [stdout] | ---- binding `host` declared here [INFO] [stdout] ... [INFO] [stdout] 315 | builder.connect(&host, port) [INFO] [stdout] | ----------------^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `host` is borrowed for `'1` [INFO] [stdout] 316 | } [INFO] [stdout] | - `host` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `self` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:29 [INFO] [stdout] | [INFO] [stdout] 188 | mut self, [INFO] [stdout] | -------- binding `self` declared here [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ^^^^-------------------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `self` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `id` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:47 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | -- binding `id` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ------------------^^^--------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `id` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `id` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `proxy_host` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:52 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | ---------- binding `proxy_host` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | -----------------------^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `proxy_host` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `proxy_host` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `host_tcp` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:77 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 193 | let host_tcp = host.to_owned(); [INFO] [stdout] | -------- binding `host_tcp` declared here [INFO] [stdout] ... [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | ------------------------------------------------^^^^^^^^^--------------------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `host_tcp` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `host_tcp` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `key` does not live long enough [INFO] [stdout] --> src/client/network.rs:197:94 [INFO] [stdout] | [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 196 | Some(HttpProxy{id, proxy_host, proxy_port, key, expiry}) => { [INFO] [stdout] | --- binding `key` declared here [INFO] [stdout] 197 | let s = self.http_connect(&id, &proxy_host, proxy_port, &host_tcp, port, &key, expiry); [INFO] [stdout] | -----------------------------------------------------------------^^^^--------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `key` is borrowed for `'1` [INFO] [stdout] 198 | Either::A(s) [INFO] [stdout] 199 | } [INFO] [stdout] | - `key` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `self` does not live long enough [INFO] [stdout] --> src/client/network.rs:201:29 [INFO] [stdout] | [INFO] [stdout] 188 | mut self, [INFO] [stdout] | -------- binding `self` declared here [INFO] [stdout] 189 | host: &str, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 201 | let s = self.tcp_connect(host, port); [INFO] [stdout] | ^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `self` is borrowed for `'1` [INFO] [stdout] ... [INFO] [stdout] 229 | } [INFO] [stdout] | - `self` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:333:17 [INFO] [stdout] | [INFO] [stdout] 333 | check_and_validate_connack(response, framed, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:333:17 [INFO] [stdout] | [INFO] [stdout] 332 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- `mqtt_state` is borrowed here [INFO] [stdout] 333 | check_and_validate_connack(response, framed, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local variable `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:333:17 [INFO] [stdout] | [INFO] [stdout] 333 | check_and_validate_connack(response, framed, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------^ [INFO] [stdout] | | | [INFO] [stdout] | | `mqtt_state` is borrowed here [INFO] [stdout] | returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0515]: cannot return value referencing local data `mqtt_state` [INFO] [stdout] --> src/client/connection.rs:333:17 [INFO] [stdout] | [INFO] [stdout] 332 | let mut mqtt_state = mqtt_state.borrow_mut(); [INFO] [stdout] | ---------- `mqtt_state` is borrowed here [INFO] [stdout] 333 | check_and_validate_connack(response, framed, &mut mqtt_state) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returns a value referencing data owned by the current function [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0515, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0499`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rumqtt` (lib) due to 20 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0515, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0499`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rumqtt` (lib test) due to 20 previous errors [INFO] running `Command { std: "docker" "inspect" "81929aa65d9fa2ad1feab259e05f34ecd033f1152f45c023b3da5062bfcdcbdd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81929aa65d9fa2ad1feab259e05f34ecd033f1152f45c023b3da5062bfcdcbdd", kill_on_drop: false }` [INFO] [stdout] 81929aa65d9fa2ad1feab259e05f34ecd033f1152f45c023b3da5062bfcdcbdd