[INFO] cloning repository https://github.com/vmasdani/twiot-gateway
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vmasdani/twiot-gateway" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvmasdani%2Ftwiot-gateway", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvmasdani%2Ftwiot-gateway'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9cb5446d35d731d5e6daafd380c1c3d1c7d1bfc5
[INFO] testing vmasdani/twiot-gateway against 1.57.0 for beta-1.58-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvmasdani%2Ftwiot-gateway" "/workspace/builds/worker-6/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vmasdani/twiot-gateway on toolchain 1.57.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.57.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vmasdani/twiot-gateway
[INFO] finished tweaking git repo https://github.com/vmasdani/twiot-gateway
[INFO] tweaked toml for git repo https://github.com/vmasdani/twiot-gateway written to /workspace/builds/worker-6/source/Cargo.toml
[INFO] crate git repo https://github.com/vmasdani/twiot-gateway already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.57.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+1.57.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] e33970b308a6380ce818c507111349054ed3511f03ff839bc4732a18424e547c
[INFO] running `Command { std: "docker" "start" "-a" "e33970b308a6380ce818c507111349054ed3511f03ff839bc4732a18424e547c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e33970b308a6380ce818c507111349054ed3511f03ff839bc4732a18424e547c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e33970b308a6380ce818c507111349054ed3511f03ff839bc4732a18424e547c", kill_on_drop: false }`
[INFO] [stdout] e33970b308a6380ce818c507111349054ed3511f03ff839bc4732a18424e547c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+1.57.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e45ba4a4fc36f01010befcc54d62bae0dc4d59d49243d23fbabcf9cff3db624
[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" "6e45ba4a4fc36f01010befcc54d62bae0dc4d59d49243d23fbabcf9cff3db624", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.0.61
[INFO] [stderr]    Compiling object v0.21.1
[INFO] [stderr]    Compiling regex-syntax v0.6.20
[INFO] [stderr]    Compiling nb v1.0.0
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling v_escape v0.15.0
[INFO] [stderr]    Compiling weezl v0.1.2
[INFO] [stderr]    Compiling display-interface v0.4.0
[INFO] [stderr]    Compiling v_htmlescape v0.12.0
[INFO] [stderr]    Compiling bytemuck v1.4.1
[INFO] [stderr]    Compiling byte-slice-cast v0.3.5
[INFO] [stderr]    Compiling checked_int_cast v1.0.0
[INFO] [stderr]    Compiling pollster v0.2.0
[INFO] [stderr]    Compiling machine-ip v0.2.1
[INFO] [stderr]    Compiling bytes v0.6.0
[INFO] [stderr]    Compiling futures-task v0.3.7
[INFO] [stderr]    Compiling miniz_oxide v0.4.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.0
[INFO] [stderr]    Compiling cookie v0.14.2
[INFO] [stderr]    Compiling num-rational v0.3.1
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]    Compiling buf-min v0.4.0
[INFO] [stderr]    Compiling mqtt4bytes v0.3.0
[INFO] [stderr]    Compiling nb v0.1.3
[INFO] [stderr]    Compiling gif v0.11.1
[INFO] [stderr]    Compiling async-channel v1.5.1
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling serial-core v0.4.0
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling aho-corasick v0.7.14
[INFO] [stderr]    Compiling tracing v0.1.21
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling embedded-graphics v0.6.2
[INFO] [stderr]    Compiling cast v0.2.3
[INFO] [stderr]    Compiling mio v0.6.22
[INFO] [stderr]    Compiling embedded-hal v0.2.4
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling serial-unix v0.4.0
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.21
[INFO] [stderr]    Compiling diesel_derives v1.4.1
[INFO] [stderr]    Compiling display-interface-i2c v0.4.0
[INFO] [stderr]    Compiling display-interface-spi v0.4.0
[INFO] [stderr]    Compiling r2d2 v0.8.9
[INFO] [stderr]    Compiling actix-threadpool v0.3.3
[INFO] [stderr]    Compiling png v0.16.7
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling mio-uds v0.6.8
[INFO] [stderr]    Compiling futures-util v0.3.7
[INFO] [stderr]    Compiling tracing-futures v0.2.4
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling serde_urlencoded v0.6.1
[INFO] [stderr]    Compiling ssd1306 v0.5.1
[INFO] [stderr]    Compiling time v0.2.22
[INFO] [stderr]    Compiling brotli-sys v0.3.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.9.1
[INFO] [stderr]    Compiling ring v0.16.15
[INFO] [stderr]    Compiling flate2 v1.0.18
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.0
[INFO] [stderr]    Compiling regex v1.4.1
[INFO] [stderr]    Compiling backtrace v0.3.53
[INFO] [stderr]    Compiling uuid v0.8.1
[INFO] [stderr]    Compiling tokio v0.2.22
[INFO] [stderr]    Compiling crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling tinybmp v0.2.3
[INFO] [stderr]    Compiling thiserror v1.0.21
[INFO] [stderr]    Compiling spidev v0.4.1
[INFO] [stderr]    Compiling sysfs_gpio v0.5.4
[INFO] [stderr]    Compiling i2cdev v0.4.4
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling actix-router v0.2.5
[INFO] [stderr]    Compiling linux-embedded-hal v0.3.0
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.7
[INFO] [stderr]    Compiling actix-service v1.0.6
[INFO] [stderr]    Compiling futures v0.3.7
[INFO] [stderr]    Compiling sct v0.6.0
[INFO] [stderr]    Compiling webpki v0.21.3
[INFO] [stderr]    Compiling rustls v0.18.1
[INFO] [stderr]    Compiling jpeg-decoder v0.1.20
[INFO] [stderr]    Compiling tokio-util v0.3.1
[INFO] [stderr]    Compiling actix-rt v1.1.1
[INFO] [stderr]    Compiling trust-dns-proto v0.19.5
[INFO] [stderr]    Compiling brotli2 v0.3.2
[INFO] [stderr]    Compiling actix-codec v0.3.0
[INFO] [stderr]    Compiling h2 v0.2.7
[INFO] [stderr]    Compiling tiff v0.6.0
[INFO] [stderr]    Compiling actix-utils v2.0.0
[INFO] [stderr]    Compiling tokio-rustls v0.14.1
[INFO] [stderr]    Compiling actix-server v1.0.4
[INFO] [stderr]    Compiling actix-tls v2.0.0
[INFO] [stderr]    Compiling rumqttc v0.2.0
[INFO] [stderr]    Compiling image v0.23.13
[INFO] [stderr]    Compiling trust-dns-resolver v0.19.5
[INFO] [stderr]    Compiling actix-testing v1.0.1
[INFO] [stderr]    Compiling actix-connect v2.0.0
[INFO] [stderr]    Compiling actix-http v2.1.0
[INFO] [stderr]    Compiling qrcode v0.12.0
[INFO] [stderr]    Compiling awc v2.0.1
[INFO] [stderr]    Compiling actix-web v3.2.0
[INFO] [stderr]    Compiling diesel v1.4.5
[INFO] [stderr]    Compiling actix-cors v0.5.4
[INFO] [stderr]    Compiling actix-files v0.5.0
[INFO] [stderr]    Compiling migrations_internals v1.4.1
[INFO] [stderr]    Compiling tokio-diesel v0.3.0
[INFO] [stderr]    Compiling migrations_macros v1.4.2
[INFO] [stderr]    Compiling diesel_migrations v1.4.0
[INFO] [stderr]    Compiling twiot-gateway v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `actix_rt::time::delay_for`
[INFO] [stdout]  --> src/db.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix_rt::time::delay_for;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Utc`
[INFO] [stdout]  --> src/db.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Local, Timelike, Utc};
[INFO] [stdout]   |              ^^^^^^^^                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncClient`, `MqttOptions`, `QoS`
[INFO] [stdout]   --> src/db.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rumqttc::{AsyncClient, MqttOptions, QoS};
[INFO] [stdout]    |               ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]   --> src/db.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     time::{Duration, Instant},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsonPayloadError`, `dev::Path`, `self`
[INFO] [stdout]  --> src/handler.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 |     client::{self, JsonPayloadError},
[INFO] [stdout]   |              ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     delete,
[INFO] [stdout] 8 |     dev::Path,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Client`, `Disconnect`
[INFO] [stdout]   --> src/handler.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 | use rumqttc::{AsyncClient, Client, Disconnect, Event, MqttOptions, QoS};
[INFO] [stdout]    |                            ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `task`, `time`
[INFO] [stdout]   --> src/handler.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::{task, time};
[INFO] [stdout]    |             ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `handler::*`, `models::Device`
[INFO] [stdout]  --> src/router.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{handler::*, models::Device};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/router.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/router.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::{str::FromStr, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse`, `Responder`, `get`, `web`
[INFO] [stdout]  --> src/serve.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     get, http::ContentEncoding, middleware::Compress, web, App, HttpResponse, HttpServer, Responder,
[INFO] [stdout]   |     ^^^                                               ^^^       ^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::poller`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use db::poller;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/mqtt.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stdout]    |          ----^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handler.rs:605:10
[INFO] [stdout]     |
[INFO] [stdout] 605 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stdout]     |          ----^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handler.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...                   Err(e) => None,
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handler.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 Err(e) => HttpResponse::InternalServerError()
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]    --> src/handler.rs:411:17
[INFO] [stdout]     |
[INFO] [stdout] 411 |             let schedule = web::block(move || {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]    --> src/handler.rs:510:17
[INFO] [stdout]     |
[INFO] [stdout] 510 |             let schedule = web::block(move || {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/router.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pool: Pool<ConnectionManager<SqliteConnection>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn_arc`
[INFO] [stdout]   --> src/router.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     conn_arc: Arc<Mutex<SqliteConnection>>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_arc`
[INFO] [stdout]   --> src/router.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     client_arc: Arc<Mutex<AsyncClient>>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private type `DeviceIdentifier` in public interface (error E0446)
[INFO] [stdout]    --> src/handler.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | / pub async fn register_device(
[INFO] [stdout] 115 | |     pool: web::Data<DbPool>,
[INFO] [stdout] 116 | |     device_identifier: web::Json<DeviceIdentifier>,
[INFO] [stdout] 117 | | ) -> impl Responder {
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(private_in_public)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` in tuple element 2 that must be used
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | /     tokio::join!(
[INFO] [stdout] 53 | |         ip_check::run_loop(),
[INFO] [stdout] 54 | |         mqtt::listen(mqtt_pool_clone, conn_arc, client_arc, &mut eventloop),
[INFO] [stdout] 55 | |         serve::run_actix(pool_clone),
[INFO] [stdout] 56 | |         db::poller(poller_clone)
[INFO] [stdout] 57 | |     );
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `$crate::join` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/handler.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 | /                         diesel::replace_into(device_types)
[INFO] [stdout] 58 | |                             .values(&device_type)
[INFO] [stdout] 59 | |                             .execute(&pool_res);
[INFO] [stdout]    | |________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 | /                         diesel::replace_into(devices)
[INFO] [stdout] 146 | |                             .values(Device {
[INFO] [stdout] 147 | |                                 id: None,
[INFO] [stdout] 148 | |                                 name: Some(String::from("")),
[INFO] [stdout] ...   |
[INFO] [stdout] 159 | |                             })
[INFO] [stdout] 160 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:329:25
[INFO] [stdout]     |
[INFO] [stdout] 329 | /                         diesel::replace_into(schedules)
[INFO] [stdout] 330 | |                             .values(&schedule_view.schedule)
[INFO] [stdout] 331 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:355:49
[INFO] [stdout]     |
[INFO] [stdout] 355 | / ...                   diesel::replace_into(device_schedules)
[INFO] [stdout] 356 | | ...                       .values(device_schedule)
[INFO] [stdout] 357 | | ...                       .execute(&pool_res);
[INFO] [stdout]     | |______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:377:25
[INFO] [stdout]     |
[INFO] [stdout] 377 |                         diesel::delete(schedules.filter(id.eq(schedule_id))).execute(&pool_res);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:387:25
[INFO] [stdout]     |
[INFO] [stdout] 387 | /                         diesel::delete(device_schedules.filter(id.eq(device_schedule_id)))
[INFO] [stdout] 388 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 572 | /                 diesel::replace_into(devices)
[INFO] [stdout] 573 | |                     .values(device_data.into_inner())
[INFO] [stdout] 574 | |                     .execute(&pool_res);
[INFO] [stdout]     | |________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:606:5
[INFO] [stdout]     |
[INFO] [stdout] 606 | /     client
[INFO] [stdout] 607 | |         .subscribe(format!("{}/water", water_data.id), QoS::AtMostOnce)
[INFO] [stdout] 608 | |         .await;
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     client
[INFO] [stdout] 611 | |         .publish(
[INFO] [stdout] 612 | |             format!("{}/water", water_data.id),
[INFO] [stdout] 613 | |             QoS::AtLeastOnce,
[INFO] [stdout] ...   |
[INFO] [stdout] 620 | |         )
[INFO] [stdout] 621 | |         .await;
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:636:5
[INFO] [stdout]     |
[INFO] [stdout] 636 |     client.disconnect().await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 resized.save("./qr.bmp");
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:66:33
[INFO] [stdout]    |
[INFO] [stdout] 66 | ...                   file.read_to_end(&mut buf);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:82:37
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...                   text.draw(&mut disp);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:85:33
[INFO] [stdout]    |
[INFO] [stdout] 85 | ...                   image.draw(&mut disp);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     client.subscribe(topic.as_str(), QoS::AtMostOnce).await;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | /     client
[INFO] [stdout] 61 | |         .publish(topic.as_str(), QoS::AtLeastOnce, false, payload.as_str())
[INFO] [stdout] 62 | |         .await;
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     client.disconnect().await;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/populate.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 | /                 diesel::insert_into(watering_times)
[INFO] [stdout] 30 | |                     .values(&new_watering_time)
[INFO] [stdout] 31 | |                     .execute(connection);
[INFO] [stdout]    | |_________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/populate.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 diesel::insert_into(schedules)
[INFO] [stdout] 60 | |                     .values(&new_schedule)
[INFO] [stdout] 61 | |                     .execute(connection);
[INFO] [stdout]    | |_________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/populate.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 | /                 diesel::replace_into(device_types)
[INFO] [stdout] 105 | |                     .values(&new_device_type)
[INFO] [stdout] 106 | |                     .execute(connection);
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 45 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 5m 24s
[INFO] running `Command { std: "docker" "inspect" "6e45ba4a4fc36f01010befcc54d62bae0dc4d59d49243d23fbabcf9cff3db624", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e45ba4a4fc36f01010befcc54d62bae0dc4d59d49243d23fbabcf9cff3db624", kill_on_drop: false }`
[INFO] [stdout] 6e45ba4a4fc36f01010befcc54d62bae0dc4d59d49243d23fbabcf9cff3db624
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+1.57.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fad6744ccb0eced3db4d822f03e45e56669c63f9d661a57fb2aacf8592e31087
[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" "fad6744ccb0eced3db4d822f03e45e56669c63f9d661a57fb2aacf8592e31087", kill_on_drop: false }`
[INFO] [stderr]    Compiling twiot-gateway v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `actix_rt::time::delay_for`
[INFO] [stdout]  --> src/db.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use actix_rt::time::delay_for;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Utc`
[INFO] [stdout]  --> src/db.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Local, Timelike, Utc};
[INFO] [stdout]   |              ^^^^^^^^                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncClient`, `MqttOptions`, `QoS`
[INFO] [stdout]   --> src/db.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rumqttc::{AsyncClient, MqttOptions, QoS};
[INFO] [stdout]    |               ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]   --> src/db.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     time::{Duration, Instant},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JsonPayloadError`, `dev::Path`, `self`
[INFO] [stdout]  --> src/handler.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 |     client::{self, JsonPayloadError},
[INFO] [stdout]   |              ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     delete,
[INFO] [stdout] 8 |     dev::Path,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Client`, `Disconnect`
[INFO] [stdout]   --> src/handler.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 | use rumqttc::{AsyncClient, Client, Disconnect, Event, MqttOptions, QoS};
[INFO] [stdout]    |                            ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `task`, `time`
[INFO] [stdout]   --> src/handler.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::{task, time};
[INFO] [stdout]    |             ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `handler::*`, `models::Device`
[INFO] [stdout]  --> src/router.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{handler::*, models::Device};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/router.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `str::FromStr`
[INFO] [stdout]  --> src/router.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::{str::FromStr, sync::Arc};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse`, `Responder`, `get`, `web`
[INFO] [stdout]  --> src/serve.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     get, http::ContentEncoding, middleware::Compress, web, App, HttpResponse, HttpServer, Responder,
[INFO] [stdout]   |     ^^^                                               ^^^       ^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `db::poller`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use db::poller;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/mqtt.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stdout]    |          ----^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/handler.rs:605:10
[INFO] [stdout]     |
[INFO] [stdout] 605 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stdout]     |          ----^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handler.rs:152:41
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...                   Err(e) => None,
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/handler.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 Err(e) => HttpResponse::InternalServerError()
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]    --> src/handler.rs:411:17
[INFO] [stdout]     |
[INFO] [stdout] 411 |             let schedule = web::block(move || {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `schedule`
[INFO] [stdout]    --> src/handler.rs:510:17
[INFO] [stdout]     |
[INFO] [stdout] 510 |             let schedule = web::block(move || {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool`
[INFO] [stdout]   --> src/router.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pool: Pool<ConnectionManager<SqliteConnection>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn_arc`
[INFO] [stdout]   --> src/router.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     conn_arc: Arc<Mutex<SqliteConnection>>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client_arc`
[INFO] [stdout]   --> src/router.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     client_arc: Arc<Mutex<AsyncClient>>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private type `DeviceIdentifier` in public interface (error E0446)
[INFO] [stdout]    --> src/handler.rs:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | / pub async fn register_device(
[INFO] [stdout] 115 | |     pool: web::Data<DbPool>,
[INFO] [stdout] 116 | |     device_identifier: web::Json<DeviceIdentifier>,
[INFO] [stdout] 117 | | ) -> impl Responder {
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(private_in_public)]` on by default
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` in tuple element 2 that must be used
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | /     tokio::join!(
[INFO] [stdout] 53 | |         ip_check::run_loop(),
[INFO] [stdout] 54 | |         mqtt::listen(mqtt_pool_clone, conn_arc, client_arc, &mut eventloop),
[INFO] [stdout] 55 | |         serve::run_actix(pool_clone),
[INFO] [stdout] 56 | |         db::poller(poller_clone)
[INFO] [stdout] 57 | |     );
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `$crate::join` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/handler.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 57 | /                         diesel::replace_into(device_types)
[INFO] [stdout] 58 | |                             .values(&device_type)
[INFO] [stdout] 59 | |                             .execute(&pool_res);
[INFO] [stdout]    | |________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 | /                         diesel::replace_into(devices)
[INFO] [stdout] 146 | |                             .values(Device {
[INFO] [stdout] 147 | |                                 id: None,
[INFO] [stdout] 148 | |                                 name: Some(String::from("")),
[INFO] [stdout] ...   |
[INFO] [stdout] 159 | |                             })
[INFO] [stdout] 160 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:329:25
[INFO] [stdout]     |
[INFO] [stdout] 329 | /                         diesel::replace_into(schedules)
[INFO] [stdout] 330 | |                             .values(&schedule_view.schedule)
[INFO] [stdout] 331 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:355:49
[INFO] [stdout]     |
[INFO] [stdout] 355 | / ...                   diesel::replace_into(device_schedules)
[INFO] [stdout] 356 | | ...                       .values(device_schedule)
[INFO] [stdout] 357 | | ...                       .execute(&pool_res);
[INFO] [stdout]     | |______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:377:25
[INFO] [stdout]     |
[INFO] [stdout] 377 |                         diesel::delete(schedules.filter(id.eq(schedule_id))).execute(&pool_res);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:387:25
[INFO] [stdout]     |
[INFO] [stdout] 387 | /                         diesel::delete(device_schedules.filter(id.eq(device_schedule_id)))
[INFO] [stdout] 388 | |                             .execute(&pool_res);
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:572:17
[INFO] [stdout]     |
[INFO] [stdout] 572 | /                 diesel::replace_into(devices)
[INFO] [stdout] 573 | |                     .values(device_data.into_inner())
[INFO] [stdout] 574 | |                     .execute(&pool_res);
[INFO] [stdout]     | |________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:606:5
[INFO] [stdout]     |
[INFO] [stdout] 606 | /     client
[INFO] [stdout] 607 | |         .subscribe(format!("{}/water", water_data.id), QoS::AtMostOnce)
[INFO] [stdout] 608 | |         .await;
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     client
[INFO] [stdout] 611 | |         .publish(
[INFO] [stdout] 612 | |             format!("{}/water", water_data.id),
[INFO] [stdout] 613 | |             QoS::AtLeastOnce,
[INFO] [stdout] ...   |
[INFO] [stdout] 620 | |         )
[INFO] [stdout] 621 | |         .await;
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/handler.rs:636:5
[INFO] [stdout]     |
[INFO] [stdout] 636 |     client.disconnect().await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 resized.save("./qr.bmp");
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:66:33
[INFO] [stdout]    |
[INFO] [stdout] 66 | ...                   file.read_to_end(&mut buf);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:82:37
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...                   text.draw(&mut disp);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/ip_check.rs:85:33
[INFO] [stdout]    |
[INFO] [stdout] 85 | ...                   image.draw(&mut disp);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     client.subscribe(topic.as_str(), QoS::AtMostOnce).await;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | /     client
[INFO] [stdout] 61 | |         .publish(topic.as_str(), QoS::AtLeastOnce, false, payload.as_str())
[INFO] [stdout] 62 | |         .await;
[INFO] [stdout]    | |_______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/mqtt.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     client.disconnect().await;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/populate.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 | /                 diesel::insert_into(watering_times)
[INFO] [stdout] 30 | |                     .values(&new_watering_time)
[INFO] [stdout] 31 | |                     .execute(connection);
[INFO] [stdout]    | |_________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/populate.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 | /                 diesel::insert_into(schedules)
[INFO] [stdout] 60 | |                     .values(&new_schedule)
[INFO] [stdout] 61 | |                     .execute(connection);
[INFO] [stdout]    | |_________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/populate.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 | /                 diesel::replace_into(device_types)
[INFO] [stdout] 105 | |                     .values(&new_device_type)
[INFO] [stdout] 106 | |                     .execute(connection);
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 45 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 7.45s
[INFO] running `Command { std: "docker" "inspect" "fad6744ccb0eced3db4d822f03e45e56669c63f9d661a57fb2aacf8592e31087", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fad6744ccb0eced3db4d822f03e45e56669c63f9d661a57fb2aacf8592e31087", kill_on_drop: false }`
[INFO] [stdout] fad6744ccb0eced3db4d822f03e45e56669c63f9d661a57fb2aacf8592e31087
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+1.57.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e3b8887d559f5d70cee16d8a507495cf3ef1b8bea450fe3771c4eaaf0361e47a
[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" "e3b8887d559f5d70cee16d8a507495cf3ef1b8bea450fe3771c4eaaf0361e47a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `actix_rt::time::delay_for`
[INFO] [stderr]  --> src/db.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use actix_rt::time::delay_for;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DateTime`, `Utc`
[INFO] [stderr]  --> src/db.rs:5:14
[INFO] [stderr]   |
[INFO] [stderr] 5 | use chrono::{DateTime, Local, Timelike, Utc};
[INFO] [stderr]   |              ^^^^^^^^                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AsyncClient`, `MqttOptions`, `QoS`
[INFO] [stderr]   --> src/db.rs:12:15
[INFO] [stderr]    |
[INFO] [stderr] 12 | use rumqttc::{AsyncClient, MqttOptions, QoS};
[INFO] [stderr]    |               ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Instant`
[INFO] [stderr]   --> src/db.rs:15:22
[INFO] [stderr]    |
[INFO] [stderr] 15 |     time::{Duration, Instant},
[INFO] [stderr]    |                      ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/handler.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `JsonPayloadError`, `dev::Path`, `self`
[INFO] [stderr]  --> src/handler.rs:6:14
[INFO] [stderr]   |
[INFO] [stderr] 6 |     client::{self, JsonPayloadError},
[INFO] [stderr]   |              ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     delete,
[INFO] [stderr] 8 |     dev::Path,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Client`, `Disconnect`
[INFO] [stderr]   --> src/handler.rs:16:28
[INFO] [stderr]    |
[INFO] [stderr] 16 | use rumqttc::{AsyncClient, Client, Disconnect, Event, MqttOptions, QoS};
[INFO] [stderr]    |                            ^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `task`, `time`
[INFO] [stderr]   --> src/handler.rs:18:13
[INFO] [stderr]    |
[INFO] [stderr] 18 | use tokio::{task, time};
[INFO] [stderr]    |             ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `handler::*`, `models::Device`
[INFO] [stderr]  --> src/router.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{handler::*, models::Device};
[INFO] [stderr]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/router.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `str::FromStr`
[INFO] [stderr]  --> src/router.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::{str::FromStr, sync::Arc};
[INFO] [stderr]   |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HttpResponse`, `Responder`, `get`, `web`
[INFO] [stderr]  --> src/serve.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     get, http::ContentEncoding, middleware::Compress, web, App, HttpResponse, HttpServer, Responder,
[INFO] [stderr]   |     ^^^                                               ^^^       ^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `db::poller`
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use db::poller;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr]   --> src/main.rs:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | #[macro_use]
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/mqtt.rs:57:10
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stderr]    |          ----^^^^^^
[INFO] [stderr]    |          |
[INFO] [stderr]    |          help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/handler.rs:605:10
[INFO] [stderr]     |
[INFO] [stderr] 605 |     let (mut client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
[INFO] [stderr]     |          ----^^^^^^
[INFO] [stderr]     |          |
[INFO] [stderr]     |          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/handler.rs:152:41
[INFO] [stderr]     |
[INFO] [stderr] 152 | ...                   Err(e) => None,
[INFO] [stderr]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/handler.rs:177:21
[INFO] [stderr]     |
[INFO] [stderr] 177 |                 Err(e) => HttpResponse::InternalServerError()
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `schedule`
[INFO] [stderr]    --> src/handler.rs:411:17
[INFO] [stderr]     |
[INFO] [stderr] 411 |             let schedule = web::block(move || {
[INFO] [stderr]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `schedule`
[INFO] [stderr]    --> src/handler.rs:510:17
[INFO] [stderr]     |
[INFO] [stderr] 510 |             let schedule = web::block(move || {
[INFO] [stderr]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_schedule`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pool`
[INFO] [stderr]   --> src/router.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pool: Pool<ConnectionManager<SqliteConnection>>,
[INFO] [stderr]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_pool`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `conn_arc`
[INFO] [stderr]   --> src/router.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     conn_arc: Arc<Mutex<SqliteConnection>>,
[INFO] [stderr]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn_arc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client_arc`
[INFO] [stderr]   --> src/router.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     client_arc: Arc<Mutex<AsyncClient>>,
[INFO] [stderr]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_arc`
[INFO] [stderr] 
[INFO] [stderr] warning: private type `DeviceIdentifier` in public interface (error E0446)
[INFO] [stderr]    --> src/handler.rs:114:1
[INFO] [stderr]     |
[INFO] [stderr] 114 | / pub async fn register_device(
[INFO] [stderr] 115 | |     pool: web::Data<DbPool>,
[INFO] [stderr] 116 | |     device_identifier: web::Json<DeviceIdentifier>,
[INFO] [stderr] 117 | | ) -> impl Responder {
[INFO] [stderr]     | |___________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(private_in_public)]` on by default
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` in tuple element 2 that must be used
[INFO] [stderr]   --> src/main.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 | /     tokio::join!(
[INFO] [stderr] 53 | |         ip_check::run_loop(),
[INFO] [stderr] 54 | |         mqtt::listen(mqtt_pool_clone, conn_arc, client_arc, &mut eventloop),
[INFO] [stderr] 55 | |         serve::run_actix(pool_clone),
[INFO] [stderr] 56 | |         db::poller(poller_clone)
[INFO] [stderr] 57 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in the macro `$crate::join` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/handler.rs:57:25
[INFO] [stderr]    |
[INFO] [stderr] 57 | /                         diesel::replace_into(device_types)
[INFO] [stderr] 58 | |                             .values(&device_type)
[INFO] [stderr] 59 | |                             .execute(&pool_res);
[INFO] [stderr]    | |________________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:145:25
[INFO] [stderr]     |
[INFO] [stderr] 145 | /                         diesel::replace_into(devices)
[INFO] [stderr] 146 | |                             .values(Device {
[INFO] [stderr] 147 | |                                 id: None,
[INFO] [stderr] 148 | |                                 name: Some(String::from("")),
[INFO] [stderr] ...   |
[INFO] [stderr] 159 | |                             })
[INFO] [stderr] 160 | |                             .execute(&pool_res);
[INFO] [stderr]     | |________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:329:25
[INFO] [stderr]     |
[INFO] [stderr] 329 | /                         diesel::replace_into(schedules)
[INFO] [stderr] 330 | |                             .values(&schedule_view.schedule)
[INFO] [stderr] 331 | |                             .execute(&pool_res);
[INFO] [stderr]     | |________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:355:49
[INFO] [stderr]     |
[INFO] [stderr] 355 | / ...                   diesel::replace_into(device_schedules)
[INFO] [stderr] 356 | | ...                       .values(device_schedule)
[INFO] [stderr] 357 | | ...                       .execute(&pool_res);
[INFO] [stderr]     | |______________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:377:25
[INFO] [stderr]     |
[INFO] [stderr] 377 |                         diesel::delete(schedules.filter(id.eq(schedule_id))).execute(&pool_res);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:387:25
[INFO] [stderr]     |
[INFO] [stderr] 387 | /                         diesel::delete(device_schedules.filter(id.eq(device_schedule_id)))
[INFO] [stderr] 388 | |                             .execute(&pool_res);
[INFO] [stderr]     | |________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:572:17
[INFO] [stderr]     |
[INFO] [stderr] 572 | /                 diesel::replace_into(devices)
[INFO] [stderr] 573 | |                     .values(device_data.into_inner())
[INFO] [stderr] 574 | |                     .execute(&pool_res);
[INFO] [stderr]     | |________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:606:5
[INFO] [stderr]     |
[INFO] [stderr] 606 | /     client
[INFO] [stderr] 607 | |         .subscribe(format!("{}/water", water_data.id), QoS::AtMostOnce)
[INFO] [stderr] 608 | |         .await;
[INFO] [stderr]     | |_______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:610:5
[INFO] [stderr]     |
[INFO] [stderr] 610 | /     client
[INFO] [stderr] 611 | |         .publish(
[INFO] [stderr] 612 | |             format!("{}/water", water_data.id),
[INFO] [stderr] 613 | |             QoS::AtLeastOnce,
[INFO] [stderr] ...   |
[INFO] [stderr] 620 | |         )
[INFO] [stderr] 621 | |         .await;
[INFO] [stderr]     | |_______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/handler.rs:636:5
[INFO] [stderr]     |
[INFO] [stderr] 636 |     client.disconnect().await;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/ip_check.rs:42:17
[INFO] [stderr]    |
[INFO] [stderr] 42 |                 resized.save("./qr.bmp");
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/ip_check.rs:66:33
[INFO] [stderr]    |
[INFO] [stderr] 66 | ...                   file.read_to_end(&mut buf);
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/ip_check.rs:82:37
[INFO] [stderr]    |
[INFO] [stderr] 82 | ...                   text.draw(&mut disp);
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/ip_check.rs:85:33
[INFO] [stderr]    |
[INFO] [stderr] 85 | ...                   image.draw(&mut disp);
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/mqtt.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 |     client.subscribe(topic.as_str(), QoS::AtMostOnce).await;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/mqtt.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 60 | /     client
[INFO] [stderr] 61 | |         .publish(topic.as_str(), QoS::AtLeastOnce, false, payload.as_str())
[INFO] [stderr] 62 | |         .await;
[INFO] [stderr]    | |_______________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/mqtt.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 |     client.disconnect().await;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/populate.rs:29:17
[INFO] [stderr]    |
[INFO] [stderr] 29 | /                 diesel::insert_into(watering_times)
[INFO] [stderr] 30 | |                     .values(&new_watering_time)
[INFO] [stderr] 31 | |                     .execute(connection);
[INFO] [stderr]    | |_________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/populate.rs:59:17
[INFO] [stderr]    |
[INFO] [stderr] 59 | /                 diesel::insert_into(schedules)
[INFO] [stderr] 60 | |                     .values(&new_schedule)
[INFO] [stderr] 61 | |                     .execute(connection);
[INFO] [stderr]    | |_________________________________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/populate.rs:104:17
[INFO] [stderr]     |
[INFO] [stderr] 104 | /                 diesel::replace_into(device_types)
[INFO] [stderr] 105 | |                     .values(&new_device_type)
[INFO] [stderr] 106 | |                     .execute(connection);
[INFO] [stderr]     | |_________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: `twiot-gateway` (bin "twiot-gateway" test) generated 45 warnings
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/twiot_gateway-39091050f9706e20)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e3b8887d559f5d70cee16d8a507495cf3ef1b8bea450fe3771c4eaaf0361e47a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3b8887d559f5d70cee16d8a507495cf3ef1b8bea450fe3771c4eaaf0361e47a", kill_on_drop: false }`
[INFO] [stdout] e3b8887d559f5d70cee16d8a507495cf3ef1b8bea450fe3771c4eaaf0361e47a