[INFO] cloning repository https://github.com/tailhook/tokio-tutorial
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tailhook/tokio-tutorial" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftailhook%2Ftokio-tutorial", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftailhook%2Ftokio-tutorial'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 05acb04df8e155312f6b13ffde6896a79a97f84a
[INFO] checking tailhook/tokio-tutorial/05acb04df8e155312f6b13ffde6896a79a97f84a against master#80b898258da78fdd1262438126aa0cf90e395f0c for pr-149195-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftailhook%2Ftokio-tutorial" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tailhook/tokio-tutorial
[INFO] finished tweaking git repo https://github.com/tailhook/tokio-tutorial
[INFO] tweaked toml for git repo https://github.com/tailhook/tokio-tutorial written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tailhook/tokio-tutorial on toolchain 80b898258da78fdd1262438126aa0cf90e395f0c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+80b898258da78fdd1262438126aa0cf90e395f0c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tailhook/tokio-tutorial 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" "+80b898258da78fdd1262438126aa0cf90e395f0c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/redis/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/stream/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/competing/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/redis_bu/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/bare/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/threads/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-5-tc1/source/core/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating git repository `https://github.com/tokio-rs/tokio-core`
[INFO] [stderr]     Updating git repository `https://github.com/tokio-rs/tokio-proto`
[INFO] [stderr]     Updating git repository `https://github.com/tokio-rs/tokio-service`
[INFO] [stderr]     Updating git repository `https://github.com/carllerche/bytes`
[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 net2 v0.2.26
[INFO] [stderr]   Downloaded lazycell v0.4.0
[INFO] [stderr]   Downloaded miow v0.1.3
[INFO] [stderr]   Downloaded nix v0.6.0
[INFO] [stderr]   Downloaded mio v0.6.0
[INFO] [stderr]   Downloaded libc v0.2.17
[INFO] [stderr]   Downloaded futures v0.1.3
[INFO] [stderr]   Downloaded bitflags v0.4.0
[INFO] [stderr]   Downloaded regex-syntax v0.3.8
[INFO] [stderr]   Downloaded regex v0.1.79
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+80b898258da78fdd1262438126aa0cf90e395f0c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] deac3fc4c4f292418ee486ff0b48db8ed4094681f48188454e53cdf717ebb0fa
[INFO] running `Command { std: "docker" "start" "-a" "deac3fc4c4f292418ee486ff0b48db8ed4094681f48188454e53cdf717ebb0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deac3fc4c4f292418ee486ff0b48db8ed4094681f48188454e53cdf717ebb0fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "deac3fc4c4f292418ee486ff0b48db8ed4094681f48188454e53cdf717ebb0fa", kill_on_drop: false }`
[INFO] [stdout] deac3fc4c4f292418ee486ff0b48db8ed4094681f48188454e53cdf717ebb0fa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+80b898258da78fdd1262438126aa0cf90e395f0c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f99ab4d1457633a63b1e0a905e1540042e8c6e5b0d2742494ff991e7f5155e08
[INFO] running `Command { std: "docker" "start" "-a" "f99ab4d1457633a63b1e0a905e1540042e8c6e5b0d2742494ff991e7f5155e08", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/bare/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/competing/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/threads/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/redis/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/redis_bu/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/stream/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/core/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: package replacement is not used: https://github.com/rust-lang/crates.io-index#tokio-service@0.1.0
[INFO] [stderr]     Checking log v0.3.6
[INFO] [stderr]     Checking libc v0.2.17
[INFO] [stderr]    Compiling semver v0.1.20
[INFO] [stderr]     Checking cfg-if v0.1.0
[INFO] [stderr]     Checking bitflags v0.4.0
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking lazycell v0.4.0
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking scoped-tls v0.1.0
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking regex-syntax v0.3.8
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking take v0.1.0
[INFO] [stderr]     Checking smallvec v0.2.1
[INFO] [stderr]    Compiling rustc_version v0.1.7
[INFO] [stderr]     Checking futures v0.1.3
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking bytes v0.4.0-dev (https://github.com/carllerche/bytes#d717fde5)
[INFO] [stderr]     Checking net2 v0.2.26
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking rand v0.3.14
[INFO] [stderr]    Compiling nix v0.6.0
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking tokio-service v0.1.0 (https://github.com/tokio-rs/tokio-service#92eccdc1)
[INFO] [stderr]     Checking tokio-service v0.1.0 (https://github.com/tokio-rs/tokio-service?rev=92eccdc#92eccdc1)
[INFO] [stderr]     Checking futures1 v0.1.0 (/opt/rustwide/workdir/bare)
[INFO] [stderr]     Checking threads v0.1.0 (/opt/rustwide/workdir/threads)
[INFO] [stderr]     Checking regex v0.1.79
[INFO] [stderr]     Checking competing v0.1.0 (/opt/rustwide/workdir/competing)
[INFO] [stderr]     Checking mio v0.6.0
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking tokio-core v0.1.0 (https://github.com/tokio-rs/tokio-core?rev=623ce44#623ce443)
[INFO] [stderr]     Checking tokio-proto v0.1.0 (https://github.com/tokio-rs/tokio-proto?rev=ea7bfa2#ea7bfa2a)
[INFO] [stderr]     Checking core v0.1.0 (/opt/rustwide/workdir/core)
[INFO] [stderr]     Checking stream v0.1.0 (/opt/rustwide/workdir/stream)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> core/src/main.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |             try!(stdout().flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> stream/src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             try!(stdout().flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> core/src/main.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |             try!(stdout().flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> stream/src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             try!(stdout().flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking redis v0.1.0 (/opt/rustwide/workdir/redis)
[INFO] [stderr]     Checking redis_bu v0.1.0 (/opt/rustwide/workdir/redis_bu)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> redis_bu/src/main.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[macro_use] extern crate log;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis_bu/src/deserialize.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                          ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 30 -             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 30 +             match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis_bu/src/deserialize.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 -                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 48 +                 match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> redis_bu/src/main.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[macro_use] extern crate log;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis/src/deserialize.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                          ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 30 -             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 30 +             match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:62:35
[INFO] [stdout]     |
[INFO] [stdout]  62 |         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]     |         ------------------------- ^^^^^^^^^^^^^^^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer::<S, T, I>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer::<S, T, I>::new`
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(service: S, transport: T) -> EasyServer<S, T, I> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-eb31d9a757d357cc.long-type-944141697699271241.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:62:9
[INFO] [stdout]     |
[INFO] [stdout]  62 | /         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  63 | |              EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]     | |_______________________________________________________________________^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:102:14
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct EasyServer<S, T, I>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] 102 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-eb31d9a757d357cc.long-type-944141697699271241.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis/src/deserialize.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 -                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 48 +                 match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis/src/deserialize.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                          ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 30 -             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 30 +             match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis/src/deserialize.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 -                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 48 +                 match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis/src/main.rs:63:39
[INFO] [stdout]     |
[INFO] [stdout]  63 |             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]     |             ------------------------- ^^^^^^^^^^^^^^^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer::<S, T, I>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer::<S, T, I>::new`
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(service: S, transport: T) -> EasyServer<S, T, I> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-532d371b003bdc2f.long-type-15207078290975368636.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis/src/main.rs:63:13
[INFO] [stdout]     |
[INFO] [stdout]  63 | /             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  64 | |                  EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]     | |___________________________________________________________________________^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:102:14
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct EasyServer<S, T, I>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] 102 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-532d371b003bdc2f.long-type-15207078290975368636.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis_bu/src/deserialize.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 |             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                          ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 30 -             match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 30 +             match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `then` exists for struct `EasyServer<SimpleService<{closure@main.rs:36:34}, _>, ..., ...>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:64:10
[INFO] [stdout]     |
[INFO] [stdout]  62 | /         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  63 | |              EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]  64 | |         .then(|_| Ok(()))  // must be always Ok() or it crashes
[INFO] [stdout]     | |         -^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:181:1
[INFO] [stdout]     |
[INFO] [stdout] 181 |   pub struct SimpleService<F, R> {
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `<_ as Service>::Error = Error`, `<_ as Service>::Request = Vec<EasyBuf>`, `<_ as Service>::Response = Response` or `_: Service`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 |   pub struct EasyServer<S, T, I>
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `_: Future` or `_: Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Request = Vec<EasyBuf>`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Response = serialize::Response`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Error = std::io::Error`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-eb31d9a757d357cc.long-type-12448897697783354749.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redis_bu` (bin "redis_bu" test) due to 3 previous errors; 3 warnings emitted
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> redis_bu/src/deserialize.rs:48:46
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout]    |                                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 48 -                 match strdata.and_then(|x| x.trim_right().parse().ok()) {
[INFO] [stdout] 48 +                 match strdata.and_then(|x| x.trim_end().parse().ok()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis/src/main.rs:63:39
[INFO] [stdout]     |
[INFO] [stdout]  63 |             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]     |             ------------------------- ^^^^^^^^^^^^^^^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer::<S, T, I>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer::<S, T, I>::new`
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(service: S, transport: T) -> EasyServer<S, T, I> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-fec61b96b4bd644d.long-type-3021667474219303931.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map_err` exists for struct `EasyServer<SimpleService<{closure@main.rs:36:34}, _>, ..., ...>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> redis/src/main.rs:65:14
[INFO] [stdout]     |
[INFO] [stdout]  63 | /             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  64 | |                  EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]  65 | |             .map_err(|e| debug!("Connection error: {}", e)));
[INFO] [stdout]     | |             -^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:181:1
[INFO] [stdout]     |
[INFO] [stdout] 181 |   pub struct SimpleService<F, R> {
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `<_ as Service>::Error = Error`, `<_ as Service>::Request = Vec<EasyBuf>`, `<_ as Service>::Response = Response` or `_: Service`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 |   pub struct EasyServer<S, T, I>
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `_: Future` or `_: Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Request = Vec<EasyBuf>`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Response = serialize::Response`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Error = std::io::Error`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-532d371b003bdc2f.long-type-2324401163215678662.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis/src/main.rs:63:13
[INFO] [stdout]     |
[INFO] [stdout]  63 | /             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  64 | |                  EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]     | |___________________________________________________________________________^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:102:14
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct EasyServer<S, T, I>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] 102 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-fec61b96b4bd644d.long-type-3021667474219303931.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map_err` exists for struct `EasyServer<SimpleService<{closure@main.rs:36:34}, _>, ..., ...>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> redis/src/main.rs:65:14
[INFO] [stdout]     |
[INFO] [stdout]  63 | /             pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  64 | |                  EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]  65 | |             .map_err(|e| debug!("Connection error: {}", e)));
[INFO] [stdout]     | |             -^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:181:1
[INFO] [stdout]     |
[INFO] [stdout] 181 |   pub struct SimpleService<F, R> {
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `<_ as Service>::Error = Error`, `<_ as Service>::Request = Vec<EasyBuf>`, `<_ as Service>::Response = Response` or `_: Service`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 |   pub struct EasyServer<S, T, I>
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `_: Future` or `_: Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Request = Vec<EasyBuf>`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Response = serialize::Response`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Error = std::io::Error`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>: tokio_service::Service`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis-fec61b96b4bd644d.long-type-7346021232054699539.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:62:35
[INFO] [stdout]     |
[INFO] [stdout]  62 |         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]     |         ------------------------- ^^^^^^^^^^^^^^^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer::<S, T, I>::new`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:113:14
[INFO] [stdout]     |
[INFO] [stdout] 113 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer::<S, T, I>::new`
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn new(service: S, transport: T) -> EasyServer<S, T, I> {
[INFO] [stdout]     |            --- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-2f9337a82d9219cf.long-type-18252536260496606462.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service` is not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:62:9
[INFO] [stdout]     |
[INFO] [stdout]  62 | /         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  63 | |              EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]     | |_______________________________________________________________________^ the trait `tokio_service::Service` is not implemented for `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>`
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ----------------- this is the found trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub trait Service {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `tokio_service::Service`:
[INFO] [stdout]               Box<(dyn tokio_service::Service<Error = E, Future = F, Request = T, Response = U> + 'static)>
[INFO] [stdout]               Box<...>
[INFO] [stdout]               Client<R1, R2, B1, B2, E>
[INFO] [stdout]               EasyClient<R1, R2>
[INFO] [stdout]               tokio_service::SimpleService<F, R>
[INFO] [stdout]     = note: there are multiple different versions of crate `tokio_service` in the dependency graph
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required by a bound in `tokio_proto::easy::pipeline::EasyServer`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:102:14
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct EasyServer<S, T, I>
[INFO] [stdout]     |            ---------- required by a bound in this struct
[INFO] [stdout] 102 |     where S: Service<Request = I, Response = T::In, Error = io::Error> + 'static,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EasyServer`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-2f9337a82d9219cf.long-type-18252536260496606462.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redis` (bin "redis" test) due to 3 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0599]: the method `then` exists for struct `EasyServer<SimpleService<{closure@main.rs:36:34}, _>, ..., ...>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> redis_bu/src/main.rs:64:10
[INFO] [stdout]     |
[INFO] [stdout]  62 | /         pipeline::EasyServer::new(service.clone(),
[INFO] [stdout]  63 | |              EasyFramed::new(socket, RedisDeserialize, RedisSerialize))
[INFO] [stdout]  64 | |         .then(|_| Ok(()))  // must be always Ok() or it crashes
[INFO] [stdout]     | |         -^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-service-d91b6266bdb84b98/92eccdc/src/lib.rs:181:1
[INFO] [stdout]     |
[INFO] [stdout] 181 |   pub struct SimpleService<F, R> {
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `<_ as Service>::Error = Error`, `<_ as Service>::Request = Vec<EasyBuf>`, `<_ as Service>::Response = Response` or `_: Service`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/git/checkouts/tokio-proto-61ad4ba8c1485886/ea7bfa2/src/easy/pipeline.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 |   pub struct EasyServer<S, T, I>
[INFO] [stdout]     |   ------------------------------ doesn't satisfy `_: Future` or `_: Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Request = Vec<EasyBuf>`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Response = serialize::Response`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _> as tokio_service::Service>::Error = std::io::Error`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>: tokio_service::Service`
[INFO] [stdout]             which is required by `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: futures::Future`
[INFO] [stdout]             `tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]             which is required by `&mut tokio_proto::easy::pipeline::EasyServer<SimpleService<{closure@redis_bu/src/main.rs:36:34: 36:53}, _>, EasyFramed<tokio_core::net::TcpStream, RedisDeserialize, RedisSerialize>, Vec<EasyBuf>>: Stream`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/redis_bu-2f9337a82d9219cf.long-type-227229400846031241.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redis` (bin "redis") due to 3 previous errors; 2 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redis_bu` (bin "redis_bu") due to 3 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f99ab4d1457633a63b1e0a905e1540042e8c6e5b0d2742494ff991e7f5155e08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f99ab4d1457633a63b1e0a905e1540042e8c6e5b0d2742494ff991e7f5155e08", kill_on_drop: false }`
[INFO] [stdout] f99ab4d1457633a63b1e0a905e1540042e8c6e5b0d2742494ff991e7f5155e08
