[INFO] fetching crate eventual 0.1.7... [INFO] testing eventual-0.1.7 against 1.49.0 for beta-1.50-1 [INFO] extracting crate eventual 0.1.7 into /workspace/builds/worker-2/source [INFO] validating manifest of crates.io crate eventual 0.1.7 on toolchain 1.49.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate eventual 0.1.7 [INFO] removed 1 missing tests [INFO] finished tweaking crates.io crate eventual 0.1.7 [INFO] tweaked toml for crates.io crate eventual 0.1.7 written to /workspace/builds/worker-2/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5af06784964dc0748a8793d4249cf0190f8bd7b0fd38fd256f0ca130cf632f02 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "5af06784964dc0748a8793d4249cf0190f8bd7b0fd38fd256f0ca130cf632f02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5af06784964dc0748a8793d4249cf0190f8bd7b0fd38fd256f0ca130cf632f02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5af06784964dc0748a8793d4249cf0190f8bd7b0fd38fd256f0ca130cf632f02", kill_on_drop: false }` [INFO] [stdout] 5af06784964dc0748a8793d4249cf0190f8bd7b0fd38fd256f0ca130cf632f02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 84a7b6746bafb6f200f350ba5621d7d1457ac681c8b5f6b023d09fdfbfbac25a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "84a7b6746bafb6f200f350ba5621d7d1457ac681c8b5f6b023d09fdfbfbac25a", kill_on_drop: false }` [INFO] [stderr] Compiling syncbox v0.2.4 [INFO] [stderr] Compiling eventual v0.1.7 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/core.rs:946:27 [INFO] [stdout] | [INFO] [stdout] 946 | type Callback = Box>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BoxedReceive>` [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn defer> + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn background> + Send + 'static, F: FnOnce() -> T + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:412:32 [INFO] [stdout] | [INFO] [stdout] 412 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/lib.rs:407:44 [INFO] [stdout] | [INFO] [stdout] 407 | AsyncError::Failed(ref e) => e.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/lib.rs:414:44 [INFO] [stdout] | [INFO] [stdout] 414 | AsyncError::Failed(ref e) => e.cause(), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Async` [INFO] [stdout] --> src/core.rs:1:6 [INFO] [stdout] | [INFO] [stdout] 1 | use {Async, BoxedReceive, AsyncResult, AsyncError}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_imports)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pair` [INFO] [stdout] --> src/run.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Async, Pair, AsyncError, Future}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syncbox::Task` [INFO] [stdout] --> src/run.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use syncbox::Task; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/stream.rs:730:17 [INFO] [stdout] | [INFO] [stdout] 730 | mem::replace(&mut self.core, Some(core::take(&mut rest.core))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_must_use)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.98s [INFO] running `Command { std: "docker" "inspect" "84a7b6746bafb6f200f350ba5621d7d1457ac681c8b5f6b023d09fdfbfbac25a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "84a7b6746bafb6f200f350ba5621d7d1457ac681c8b5f6b023d09fdfbfbac25a", kill_on_drop: false }` [INFO] [stdout] 84a7b6746bafb6f200f350ba5621d7d1457ac681c8b5f6b023d09fdfbfbac25a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 01377883fca6f605cc5cf9c8b44da7ad769450acbbfb4d8f20ab10610a2efbb6 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "01377883fca6f605cc5cf9c8b44da7ad769450acbbfb4d8f20ab10610a2efbb6", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/core.rs:946:27 [INFO] [stdout] | [INFO] [stdout] 946 | type Callback = Box>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BoxedReceive>` [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling eventual v0.1.7 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn defer> + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn background> + Send + 'static, F: FnOnce() -> T + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:412:32 [INFO] [stdout] | [INFO] [stdout] 412 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/lib.rs:407:44 [INFO] [stdout] | [INFO] [stdout] 407 | AsyncError::Failed(ref e) => e.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/lib.rs:414:44 [INFO] [stdout] | [INFO] [stdout] 414 | AsyncError::Failed(ref e) => e.cause(), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Async` [INFO] [stdout] --> src/core.rs:1:6 [INFO] [stdout] | [INFO] [stdout] 1 | use {Async, BoxedReceive, AsyncResult, AsyncError}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_imports)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pair` [INFO] [stdout] --> src/run.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Async, Pair, AsyncError, Future}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syncbox::Task` [INFO] [stdout] --> src/run.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use syncbox::Task; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/stream.rs:730:17 [INFO] [stdout] | [INFO] [stdout] 730 | mem::replace(&mut self.core, Some(core::take(&mut rest.core))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_must_use)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/core.rs:946:27 [INFO] [stdout] | [INFO] [stdout] 946 | type Callback = Box>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BoxedReceive>` [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn defer> + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/run.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn background> + Send + 'static, F: FnOnce() -> T + Send + 'static, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:412:32 [INFO] [stdout] | [INFO] [stdout] 412 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/lib.rs:407:44 [INFO] [stdout] | [INFO] [stdout] 407 | AsyncError::Failed(ref e) => e.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stdout] --> src/lib.rs:414:44 [INFO] [stdout] | [INFO] [stdout] 414 | AsyncError::Failed(ref e) => e.cause(), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Async` [INFO] [stdout] --> src/core.rs:1:6 [INFO] [stdout] | [INFO] [stdout] 1 | use {Async, BoxedReceive, AsyncResult, AsyncError}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_imports)]` implied by `#[warn(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pair` [INFO] [stdout] --> src/run.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Async, Pair, AsyncError, Future}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syncbox::Task` [INFO] [stdout] --> src/run.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use syncbox::Task; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/stream.rs:730:17 [INFO] [stdout] | [INFO] [stdout] 730 | mem::replace(&mut self.core, Some(core::take(&mut rest.core))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_must_use)]` implied by `#[warn(warnings)]` [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 10 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.05s [INFO] running `Command { std: "docker" "inspect" "01377883fca6f605cc5cf9c8b44da7ad769450acbbfb4d8f20ab10610a2efbb6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01377883fca6f605cc5cf9c8b44da7ad769450acbbfb4d8f20ab10610a2efbb6", kill_on_drop: false }` [INFO] [stdout] 01377883fca6f605cc5cf9c8b44da7ad769450acbbfb4d8f20ab10610a2efbb6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 715fb648469511c335060a619916e89030680a891345bc2f3414d4965f495bd6 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "715fb648469511c335060a619916e89030680a891345bc2f3414d4965f495bd6", kill_on_drop: false }` [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core.rs:946:27 [INFO] [stderr] | [INFO] [stderr] 946 | type Callback = Box>>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BoxedReceive>` [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/run.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn defer> + Send + 'static, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/run.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn background> + Send + 'static, F: FnOnce() -> T + Send + 'static, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:412:32 [INFO] [stderr] | [INFO] [stderr] 412 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/lib.rs:407:44 [INFO] [stderr] | [INFO] [stderr] 407 | AsyncError::Failed(ref e) => e.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/lib.rs:414:44 [INFO] [stderr] | [INFO] [stderr] 414 | AsyncError::Failed(ref e) => e.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Async` [INFO] [stderr] --> src/core.rs:1:6 [INFO] [stderr] | [INFO] [stderr] 1 | use {Async, BoxedReceive, AsyncResult, AsyncError}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(unused_imports)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Pair` [INFO] [stderr] --> src/run.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use super::{Async, Pair, AsyncError, Future}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `syncbox::Task` [INFO] [stderr] --> src/run.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use syncbox::Task; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `std::mem::replace` that must be used [INFO] [stderr] --> src/stream.rs:730:17 [INFO] [stderr] | [INFO] [stderr] 730 | mem::replace(&mut self.core, Some(core::take(&mut rest.core))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(unused_must_use)]` implied by `#[warn(warnings)]` [INFO] [stderr] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/core.rs:946:27 [INFO] [stderr] | [INFO] [stderr] 946 | type Callback = Box>>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn BoxedReceive>` [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/run.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn defer> + Send + 'static, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/run.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn background> + Send + 'static, F: FnOnce() -> T + Send + 'static, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn TaskBox` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:412:32 [INFO] [stderr] | [INFO] [stderr] 412 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/lib.rs:407:44 [INFO] [stderr] | [INFO] [stderr] 407 | AsyncError::Failed(ref e) => e.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/lib.rs:414:44 [INFO] [stderr] | [INFO] [stderr] 414 | AsyncError::Failed(ref e) => e.cause(), [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Async` [INFO] [stderr] --> src/core.rs:1:6 [INFO] [stderr] | [INFO] [stderr] 1 | use {Async, BoxedReceive, AsyncResult, AsyncError}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(unused_imports)]` implied by `#[warn(warnings)]` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Pair` [INFO] [stderr] --> src/run.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use super::{Async, Pair, AsyncError, Future}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `syncbox::Task` [INFO] [stderr] --> src/run.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use syncbox::Task; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused return value of `std::mem::replace` that must be used [INFO] [stderr] --> src/stream.rs:730:17 [INFO] [stderr] | [INFO] [stderr] 730 | mem::replace(&mut self.core, Some(core::take(&mut rest.core))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | #![deny(warnings)] [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = note: `#[warn(unused_must_use)]` implied by `#[warn(warnings)]` [INFO] [stderr] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stderr] [INFO] [stderr] warning: 10 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.05s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/eventual-e51ad8ec569b4d14 [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test core::test::test_struct_sizes ... ok [INFO] [stdout] test future::test_size_of_future ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- future::test_size_of_future stdout ---- [INFO] [stdout] thread 'future::test_size_of_future' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `32`, [INFO] [stdout] right: `16`', src/future.rs:394:5 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55769ed83060 - std::backtrace_rs::backtrace::libunwind::trace::h04d12fdcddff82aa [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/../../backtrace/src/backtrace/libunwind.rs:100:5 [INFO] [stdout] 1: 0x55769ed83060 - std::backtrace_rs::backtrace::trace_unsynchronized::h1459b974b6fbe5e1 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55769ed83060 - std::sys_common::backtrace::_print_fmt::h9b8396a669123d95 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x55769ed83060 - ::fmt::he009dcaaa75eed60 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x55769eda614c - core::fmt::write::h77b4746b0dea1dd3 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/fmt/mod.rs:1078:17 [INFO] [stdout] 5: 0x55769ed2cc76 - std::io::Write::write_fmt::h3a40d9c04f88bb58 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/io/mod.rs:1518:15 [INFO] [stdout] 6: 0x55769ed7d35d - std::io::impls::>::write_fmt::h1b3d263673641f53 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/io/impls.rs:179:9 [INFO] [stdout] 7: 0x55769ed85735 - std::sys_common::backtrace::_print::h2d880c9e69a21be9 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 8: 0x55769ed85735 - std::sys_common::backtrace::print::h5f02b1bb49f36879 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 9: 0x55769ed85735 - std::panicking::default_hook::{{closure}}::h658e288a7a809b29 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:208:50 [INFO] [stdout] 10: 0x55769ed85382 - std::panicking::default_hook::hb52d73f0da9a4bb8 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:224:9 [INFO] [stderr] error: test failed, to rerun pass '--lib' [INFO] [stdout] 11: 0x55769ed85ed1 - std::panicking::rust_panic_with_hook::hfe7e1c684e3e6462 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:593:17 [INFO] [stdout] 12: 0x55769ed85a17 - std::panicking::begin_panic_handler::{{closure}}::h42939e004b32765c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:499:13 [INFO] [stdout] 13: 0x55769ed8351c - std::sys_common::backtrace::__rust_end_short_backtrace::h9d2070f7bf9fd56c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 14: 0x55769ed85979 - rust_begin_unwind [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:495:5 [INFO] [stdout] 15: 0x55769ed8592b - std::panicking::begin_panic_fmt::h4a7e15187eac098d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:437:5 [INFO] [stdout] 16: 0x55769ed2b90e - eventual::future::test_size_of_future::h795fcfbc61364b4e [INFO] [stdout] at /opt/rustwide/workdir/src/future.rs:394:5 [INFO] [stdout] 17: 0x55769ed2b79a - eventual::future::test_size_of_future::{{closure}}::h2f4cb53d338fcc8b [INFO] [stdout] at /opt/rustwide/workdir/src/future.rs:390:1 [INFO] [stdout] 18: 0x55769ed2b75e - core::ops::function::FnOnce::call_once::h9e68c429ef7f1071 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 19: 0x55769ed547c3 - core::ops::function::FnOnce::call_once::hdbd2235b6243db3d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x55769ed547c3 - test::__rust_begin_short_backtrace::hb1dea1c208110812 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:517:5 [INFO] [stdout] 21: 0x55769ed52c6a - as core::ops::function::FnOnce>::call_once::h5d11a40efef721f2 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 22: 0x55769ed52c6a - as core::ops::function::FnOnce<()>>::call_once::h23961df98af0bc5a [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:322:9 [INFO] [stdout] 23: 0x55769ed52c6a - std::panicking::try::do_call::h6390646e3de3fb9e [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381:40 [INFO] [stdout] 24: 0x55769ed52c6a - std::panicking::try::hc531439ab6159192 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345:19 [INFO] [stdout] 25: 0x55769ed52c6a - std::panic::catch_unwind::h859d8bdaf9b4855c [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396:14 [INFO] [stdout] 26: 0x55769ed52c6a - test::run_test_in_process::hae60aa74417e3abc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:544:18 [INFO] [stdout] 27: 0x55769ed52c6a - test::run_test::run_test_inner::{{closure}}::hf48c86652c4a151d [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/test/src/lib.rs:450:39 [INFO] [stdout] 28: 0x55769ed2bff6 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb82b392232b8bd1f [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 29: 0x55769ed30ff3 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h79ca9e9abe157956 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/thread/mod.rs:474:17 [INFO] [stdout] 30: 0x55769ed30ff3 - as core::ops::function::FnOnce<()>>::call_once::ha12f1f228780a4f7 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:322:9 [INFO] [stdout] 31: 0x55769ed30ff3 - std::panicking::try::do_call::h722bb7416d021cdc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381:40 [INFO] [stdout] 32: 0x55769ed30ff3 - std::panicking::try::h78e5abca71ac7cac [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345:19 [INFO] [stdout] 33: 0x55769ed30ff3 - std::panic::catch_unwind::h95162588bd0fa090 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396:14 [INFO] [stdout] 34: 0x55769ed30ff3 - std::thread::Builder::spawn_unchecked::{{closure}}::h64da5c4b9acc58dc [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/thread/mod.rs:473:30 [INFO] [stdout] 35: 0x55769ed30ff3 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h7a8c588ad0b69edb [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 36: 0x55769ed8c2fa - as core::ops::function::FnOnce>::call_once::h09ff301006f1aeca [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 37: 0x55769ed8c2fa - as core::ops::function::FnOnce>::call_once::he79488c8f00b5f31 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/alloc/src/boxed.rs:1307:9 [INFO] [stdout] 38: 0x55769ed8c2fa - std::sys::unix::thread::Thread::new::thread_start::h587efff279c68ba7 [INFO] [stdout] at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 39: 0x7f401342c609 - start_thread [INFO] [stdout] 40: 0x7f40131fe293 - clone [INFO] [stdout] 41: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] future::test_size_of_future [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "715fb648469511c335060a619916e89030680a891345bc2f3414d4965f495bd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "715fb648469511c335060a619916e89030680a891345bc2f3414d4965f495bd6", kill_on_drop: false }` [INFO] [stdout] 715fb648469511c335060a619916e89030680a891345bc2f3414d4965f495bd6