[INFO] cloning repository https://github.com/FoxLisk/RetroSpeedBot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FoxLisk/RetroSpeedBot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFoxLisk%2FRetroSpeedBot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFoxLisk%2FRetroSpeedBot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2e9ca0723f4aac15179e8e5be516f700eff6c8ac
[INFO] checking FoxLisk/RetroSpeedBot against beta-2021-10-15 for beta-1.56-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFoxLisk%2FRetroSpeedBot" "/workspace/builds/worker-10/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-10/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/FoxLisk/RetroSpeedBot on toolchain beta-2021-10-15
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/FoxLisk/RetroSpeedBot
[INFO] finished tweaking git repo https://github.com/FoxLisk/RetroSpeedBot
[INFO] tweaked toml for git repo https://github.com/FoxLisk/RetroSpeedBot written to /workspace/builds/worker-10/source/Cargo.toml
[INFO] crate git repo https://github.com/FoxLisk/RetroSpeedBot already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cpufeatures v0.1.3
[INFO] [stderr]   Downloaded twilight-gateway v0.3.4
[INFO] [stderr]   Downloaded proc-quote-impl v0.3.2
[INFO] [stderr]   Downloaded twilight-cache-inmemory v0.3.6
[INFO] [stderr]   Downloaded twilight-gateway-queue v0.3.0
[INFO] [stderr]   Downloaded twilight-http v0.3.9
[INFO] [stderr]   Downloaded twilight-model v0.3.7
[INFO] [stderr]   Downloaded twilight-command-parser v0.3.0
[INFO] [stderr]   Downloaded proc-quote v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7b6380130e4a998754024462b04165f22faa7dae2832b08530c1fb6ca7cc1288
[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" "7b6380130e4a998754024462b04165f22faa7dae2832b08530c1fb6ca7cc1288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b6380130e4a998754024462b04165f22faa7dae2832b08530c1fb6ca7cc1288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b6380130e4a998754024462b04165f22faa7dae2832b08530c1fb6ca7cc1288", kill_on_drop: false }`
[INFO] [stdout] 7b6380130e4a998754024462b04165f22faa7dae2832b08530c1fb6ca7cc1288
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1ea5e0389b5d37f8502f97751133b35991254cee85028c98e9f7b16ba29a7ebc
[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" "1ea5e0389b5d37f8502f97751133b35991254cee85028c98e9f7b16ba29a7ebc", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling build_const v0.2.2
[INFO] [stderr]    Compiling serde v1.0.126
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]     Checking cpufeatures v0.1.3
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]     Checking httpdate v1.0.0
[INFO] [stderr]     Checking custom_error v1.9.2
[INFO] [stderr]    Compiling tokio v1.6.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.4
[INFO] [stderr]    Compiling ahash v0.7.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.22.2
[INFO] [stderr]    Compiling libz-sys v1.1.3
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]    Compiling heck v0.3.2
[INFO] [stderr]     Checking unicode-normalization v0.1.17
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]     Checking lexical-core v0.7.6
[INFO] [stderr]     Checking ordered-float v2.2.0
[INFO] [stderr]     Checking atoi v0.4.0
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]     Checking twilight-command-parser v0.3.0
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.0
[INFO] [stderr]     Checking sha-1 v0.9.6
[INFO] [stderr]     Checking sha2 v0.9.5
[INFO] [stderr]     Checking indexmap v1.6.2
[INFO] [stderr]     Checking lru v0.6.5
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking stringprep v0.1.2
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling mio v0.7.11
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.8.3
[INFO] [stderr]    Compiling time v0.1.43
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking socket2 v0.4.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking flate2 v1.0.20
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking crossbeam-queue v0.3.1
[INFO] [stderr]     Checking nom v6.1.2
[INFO] [stderr]    Compiling chrono-tz v0.5.3
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]    Compiling proc-quote-impl v0.3.2
[INFO] [stderr]    Compiling parking_lot v0.11.1
[INFO] [stderr]     Checking dashmap v4.0.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]     Checking env_logger v0.8.3
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]    Compiling webpki v0.21.4
[INFO] [stderr]    Compiling sct v0.6.1
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]    Compiling rustls v0.19.1
[INFO] [stderr]    Compiling webpki-roots v0.21.1
[INFO] [stderr]     Checking ct-logs v0.8.0
[INFO] [stderr]    Compiling hashlink v0.7.0
[INFO] [stderr]     Checking webpki-roots v0.20.0
[INFO] [stderr]     Checking tungstenite v0.11.1
[INFO] [stderr]     Checking sqlformat v0.1.6
[INFO] [stderr]     Checking rustls-native-certs v0.5.0
[INFO] [stderr]    Compiling darling_core v0.12.4
[INFO] [stderr]    Compiling proc-quote v0.4.0
[INFO] [stderr]    Compiling tokio-macros v1.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.15
[INFO] [stderr]    Compiling tracing-attributes v0.1.15
[INFO] [stderr]    Compiling serde_derive v1.0.126
[INFO] [stderr]    Compiling thiserror-impl v1.0.24
[INFO] [stderr]    Compiling pin-project-internal v1.0.7
[INFO] [stderr]    Compiling serde_repr v0.1.7
[INFO] [stderr]    Compiling darling_macro v0.12.4
[INFO] [stderr]     Checking futures-util v0.3.15
[INFO] [stderr]    Compiling thiserror v1.0.24
[INFO] [stderr]    Compiling darling v0.12.4
[INFO] [stderr]    Compiling derive_builder_core v0.10.2
[INFO] [stderr]     Checking pin-project v1.0.7
[INFO] [stderr]     Checking tracing v0.1.26
[INFO] [stderr]    Compiling derive_builder_macro v0.10.2
[INFO] [stderr]     Checking derive_builder v0.10.2
[INFO] [stderr]    Compiling futures-executor v0.3.15
[INFO] [stderr]    Compiling futures v0.3.15
[INFO] [stderr]     Checking tokio-rustls v0.22.0
[INFO] [stderr]     Checking tokio-util v0.6.7
[INFO] [stderr]     Checking tokio-stream v0.1.6
[INFO] [stderr]     Checking sqlx-rt v0.5.5
[INFO] [stderr]     Checking async-tungstenite v0.11.0
[INFO] [stderr]     Checking sqlx-core v0.5.5
[INFO] [stderr]     Checking h2 v0.3.3
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking twilight-model v0.3.7
[INFO] [stderr]     Checking hyper v0.14.7
[INFO] [stderr]    Compiling sqlx-macros v0.5.5
[INFO] [stderr]     Checking hyper-rustls v0.22.1
[INFO] [stderr]    Compiling sqlx v0.5.5
[INFO] [stderr]    Compiling procm v0.1.0 (/opt/rustwide/workdir/procm)
[INFO] [stderr]     Checking twilight-http v0.3.9
[INFO] [stderr]     Checking twilight-cache-inmemory v0.3.6
[INFO] [stderr]     Checking twilight-gateway-queue v0.3.0
[INFO] [stderr]     Checking twilight-gateway v0.3.4
[INFO] [stderr]     Checking retro_speed_bot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct Game\n{\n    pub(crate) id : i64, pub(crate) name : String, pub(crate) name_pretty :\n    String,\n} impl Game\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Game SET  id = ?, name = ?, name_pretty = ?  WHERE id = ?\",\n         self.id, self.name, self.name_pretty, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Game, \"SELECT * FROM Game WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / model! {
[INFO] [stdout] 64 | | pub(crate) struct Game {
[INFO] [stdout] 65 | |     pub(crate)   id: i64,
[INFO] [stdout] 66 | |     pub(crate)   name: String,
[INFO] [stdout] 67 | |     pub(crate)  name_pretty: String,
[INFO] [stdout] 68 | | }
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / model! {
[INFO] [stdout] 64 | | pub(crate) struct Game {
[INFO] [stdout] 65 | |     pub(crate)   id: i64,
[INFO] [stdout] 66 | |     pub(crate)   name: String,
[INFO] [stdout] 67 | |     pub(crate)  name_pretty: String,
[INFO] [stdout] 68 | | }
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct\nCategory\n{\n    pub(crate) id : i64, pub(crate) game_id : i64, pub(crate) name : String,\n    pub(crate) name_pretty : String,\n} impl Category\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Category SET  id = ?, game_id = ?, name = ?, name_pretty = ?  WHERE id = ?\",\n         self.id, self.game_id, self.name, self.name_pretty, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Category, \"SELECT * FROM Category WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / model! {
[INFO] [stdout] 72 | | pub(crate) struct Category {
[INFO] [stdout] 73 | |     pub(crate)   id: i64,
[INFO] [stdout] 74 | |     pub(crate)   game_id: i64,
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout] 78 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / model! {
[INFO] [stdout] 72 | | pub(crate) struct Category {
[INFO] [stdout] 73 | |     pub(crate)   id: i64,
[INFO] [stdout] 74 | |     pub(crate)   game_id: i64,
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout] 78 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct Race\n{\n    pub(crate) id : i64, pub(crate) game_id : i64, pub(crate) category_id :\n    i64, #[doc = \" use get/set_state() functions\"] pub(crate) state : String,\n    pub(crate) occurs : i64,\n    #[doc = \" Use get/set_scheduling_message_id() functions\"] pub(crate)\n    scheduling_message_id : Option < String >,\n    #[doc = \" use get/set_active_message_id() functions\"] pub(crate)\n    active_message_id : Option < String >,\n} impl Race\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Race SET  id = ?, game_id = ?, category_id = ?, state = ?, occurs = ?, scheduling_message_id = ?, active_message_id = ?  WHERE id = ?\",\n         self.id, self.game_id, self.category_id, self.state, self.occurs,\n         self.scheduling_message_id, self.active_message_id, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Race, \"SELECT * FROM Race WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]    --> src/models.rs:80:1
[INFO] [stdout]     |
[INFO] [stdout] 80  | / model! {
[INFO] [stdout] 81  | | pub(crate) struct Race {
[INFO] [stdout] 82  | |     pub(crate) id: i64,
[INFO] [stdout] 83  | |     // N.B. game_id is not strictly necessary in this struct
[INFO] [stdout] ...   |
[INFO] [stdout] 99  | | }
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]    --> src/models.rs:80:1
[INFO] [stdout]     |
[INFO] [stdout] 80  | / model! {
[INFO] [stdout] 81  | | pub(crate) struct Race {
[INFO] [stdout] 82  | |     pub(crate) id: i64,
[INFO] [stdout] 83  | |     // N.B. game_id is not strictly necessary in this struct
[INFO] [stdout] ...   |
[INFO] [stdout] 99  | | }
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::Race`
[INFO] [stdout]    --> src/models.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     use crate::models::Race;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Local`, `Timelike`
[INFO] [stdout]    --> src/models.rs:177:18
[INFO] [stdout]     |
[INFO] [stdout] 177 |     use chrono::{Local, Timelike};
[INFO] [stdout]     |                  ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct Game\n{\n    pub(crate) id : i64, pub(crate) name : String, pub(crate) name_pretty :\n    String,\n} impl Game\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Game SET  id = ?, name = ?, name_pretty = ?  WHERE id = ?\",\n         self.id, self.name, self.name_pretty, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Game, \"SELECT * FROM Game WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / model! {
[INFO] [stdout] 64 | | pub(crate) struct Game {
[INFO] [stdout] 65 | |     pub(crate)   id: i64,
[INFO] [stdout] 66 | |     pub(crate)   name: String,
[INFO] [stdout] 67 | |     pub(crate)  name_pretty: String,
[INFO] [stdout] 68 | | }
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | / model! {
[INFO] [stdout] 64 | | pub(crate) struct Game {
[INFO] [stdout] 65 | |     pub(crate)   id: i64,
[INFO] [stdout] 66 | |     pub(crate)   name: String,
[INFO] [stdout] 67 | |     pub(crate)  name_pretty: String,
[INFO] [stdout] 68 | | }
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct\nCategory\n{\n    pub(crate) id : i64, pub(crate) game_id : i64, pub(crate) name : String,\n    pub(crate) name_pretty : String,\n} impl Category\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Category SET  id = ?, game_id = ?, name = ?, name_pretty = ?  WHERE id = ?\",\n         self.id, self.game_id, self.name, self.name_pretty, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Category, \"SELECT * FROM Category WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / model! {
[INFO] [stdout] 72 | | pub(crate) struct Category {
[INFO] [stdout] 73 | |     pub(crate)   id: i64,
[INFO] [stdout] 74 | |     pub(crate)   game_id: i64,
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout] 78 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]   --> src/models.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / model! {
[INFO] [stdout] 72 | | pub(crate) struct Category {
[INFO] [stdout] 73 | |     pub(crate)   id: i64,
[INFO] [stdout] 74 | |     pub(crate)   game_id: i64,
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout] 78 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] "#[derive(sqlx :: FromRow)] #[derive(Debug, PartialEq)] pub(crate) struct Race\n{\n    pub(crate) id : i64, pub(crate) game_id : i64, pub(crate) category_id :\n    i64, #[doc = \" use get/set_state() functions\"] pub(crate) state : String,\n    pub(crate) occurs : i64,\n    #[doc = \" Use get/set_scheduling_message_id() functions\"] pub(crate)\n    scheduling_message_id : Option < String >,\n    #[doc = \" use get/set_active_message_id() functions\"] pub(crate)\n    active_message_id : Option < String >,\n} impl Race\n{\n    pub(crate) async fn save(& self, pool : & SqlitePool) -> sqlx :: Result <\n    () >\n    {\n        let q = sqlx :: query!\n        [\" UPDATE Race SET  id = ?, game_id = ?, category_id = ?, state = ?, occurs = ?, scheduling_message_id = ?, active_message_id = ?  WHERE id = ?\",\n         self.id, self.game_id, self.category_id, self.state, self.occurs,\n         self.scheduling_message_id, self.active_message_id, self.id] ; debug!\n        (\"Updating {:?}\", self) ; match q.execute(pool).await\n        { Ok(_) => Ok(()), Err(e) => Err(e), }\n    } pub(crate) async fn get_by_id(id : i64, pool : & SqlitePool) -> Option <\n    Self >\n    {\n        let q = sqlx :: query_as!\n        (Race, \"SELECT * FROM Race WHERE id = ?\", id) ; match\n        q.fetch_one(pool).await\n        {\n            Ok(r) => Some(r), Err(e) =>\n            { warn! (\"Error fetching by id: {}\", e) ; None }\n        }\n    }\n}"
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]    --> src/models.rs:80:1
[INFO] [stdout]     |
[INFO] [stdout] 80  | / model! {
[INFO] [stdout] 81  | | pub(crate) struct Race {
[INFO] [stdout] 82  | |     pub(crate) id: i64,
[INFO] [stdout] 83  | |     // N.B. game_id is not strictly necessary in this struct
[INFO] [stdout] ...   |
[INFO] [stdout] 99  | | }
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error returned from database: unable to open database file
[INFO] [stdout]    --> src/models.rs:80:1
[INFO] [stdout]     |
[INFO] [stdout] 80  | / model! {
[INFO] [stdout] 81  | | pub(crate) struct Race {
[INFO] [stdout] 82  | |     pub(crate) id: i64,
[INFO] [stdout] 83  | |     // N.B. game_id is not strictly necessary in this struct
[INFO] [stdout] ...   |
[INFO] [stdout] 99  | | }
[INFO] [stdout] 100 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `retro_speed_bot` due to 7 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1655:13
[INFO] [stdout]      |
[INFO] [stdout] 1655 |             _end_race(Some(r.id), &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----------  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1663:13
[INFO] [stdout]      |
[INFO] [stdout] 1663 |             _end_race(Some(r.id), &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----------  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1675:13
[INFO] [stdout]      |
[INFO] [stdout] 1675 |             _end_race(Some(1234), &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----------  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1696:13
[INFO] [stdout]      |
[INFO] [stdout] 1696 |             _end_race(Some(r.id), &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----------  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1718:49
[INFO] [stdout]      |
[INFO] [stdout] 1718 |         assert_eq!(format!("{} completed.", r), _end_race(None, &pool).await);
[INFO] [stdout]      |                                                 ^^^^^^^^^ ----  ----- supplied 2 arguments
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1754:13
[INFO] [stdout]      |
[INFO] [stdout] 1754 |             _end_race(None, &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 2 arguments were supplied
[INFO] [stdout]     --> src/discord.rs:1771:13
[INFO] [stdout]      |
[INFO] [stdout] 1771 |             _end_race(None, &pool).await
[INFO] [stdout]      |             ^^^^^^^^^ ----  ----- supplied 2 arguments
[INFO] [stdout]      |             |
[INFO] [stdout]      |             expected 3 arguments
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/discord.rs:1130:10
[INFO] [stdout]      |
[INFO] [stdout] 1130 | async fn _end_race(oid: Option<i64>, pool: &SqlitePool, bot_state: Arc<BotState>) -> String {
[INFO] [stdout]      |          ^^^^^^^^^ ----------------  -----------------  ------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "1ea5e0389b5d37f8502f97751133b35991254cee85028c98e9f7b16ba29a7ebc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ea5e0389b5d37f8502f97751133b35991254cee85028c98e9f7b16ba29a7ebc", kill_on_drop: false }`
[INFO] [stdout] 1ea5e0389b5d37f8502f97751133b35991254cee85028c98e9f7b16ba29a7ebc
