[INFO] cloning repository https://github.com/david-cattermole/timetracker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/david-cattermole/timetracker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0a267e69b4109548e273536d62d769c2324fc4a8
[INFO] checking david-cattermole/timetracker against 7211ea594cbf137ef6118b1752b959dea7cb9088 for pr-164148-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/david-cattermole/timetracker
[INFO] finished tweaking git repo https://github.com/david-cattermole/timetracker
[INFO] tweaked toml for git repo https://github.com/david-cattermole/timetracker written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/david-cattermole/timetracker on toolchain 7211ea594cbf137ef6118b1752b959dea7cb9088
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7211ea594cbf137ef6118b1752b959dea7cb9088" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/david-cattermole/timetracker already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7211ea594cbf137ef6118b1752b959dea7cb9088" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.11.2
[INFO] [stderr]   Downloaded system-deps v6.2.0
[INFO] [stderr]   Downloaded cfg-expr v0.15.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f
[INFO] running `Command { std: "docker" "start" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f" "/opt/rustwide/cargo-home/bin/cargo" "+7211ea594cbf137ef6118b1752b959dea7cb9088" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f" "/opt/rustwide/cargo-home/bin/cargo" "+7211ea594cbf137ef6118b1752b959dea7cb9088" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]    Compiling target-lexicon v0.12.13
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]     Checking phf_shared v0.11.2
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking anstyle v1.0.6
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking textwrap v0.16.0
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling phf_codegen v0.11.2
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling terminfo v0.8.0
[INFO] [stderr]     Checking anstream v0.6.11
[INFO] [stderr]    Compiling gio v0.18.4
[INFO] [stderr]    Compiling jobserver v0.1.28
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]    Compiling gtk v0.18.1
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]    Compiling clap_derive v3.2.25
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]    Compiling cfg-expr v0.15.7
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking shellexpand v3.1.0
[INFO] [stderr]     Checking indexmap v2.2.3
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]    Compiling timetracker-recorder v0.4.3 (/opt/rustwide/workdir/recorder-bin)
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]    Compiling serde_derive v1.0.196
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]    Compiling toml_datetime v0.6.3
[INFO] [stderr]    Compiling serde_spanned v0.6.5
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking thiserror v1.0.57
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking env_filter v0.1.0
[INFO] [stderr]     Checking env_logger v0.11.2
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v2.0.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling system-deps v6.2.0
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]    Compiling gtk3-macros v0.18.0
[INFO] [stderr]     Checking config v0.14.0
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling atk-sys v0.18.0
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gdk-sys v0.18.0
[INFO] [stderr]    Compiling gtk-sys v0.18.0
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking timetracker-core v0.4.3 (/opt/rustwide/workdir/core)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                     ^------------
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     `FromPrimitive` is not local
[INFO] [stdout]    |                                                     move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:68
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                                    ^----------
[INFO] [stdout]    |                                                                    |
[INFO] [stdout]    |                                                                    `ToPrimitive` is not local
[INFO] [stdout]    |                                                                    move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                     ^------------
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     `FromPrimitive` is not local
[INFO] [stdout]    |                                                     move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:68
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                                    ^----------
[INFO] [stdout]    |                                                                    |
[INFO] [stdout]    |                                                                    `ToPrimitive` is not local
[INFO] [stdout]    |                                                                    move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking timetracker-print-lib v0.4.3 (/opt/rustwide/workdir/print-lib)
[INFO] [stderr]     Checking timetracker-configure v0.4.3 (/opt/rustwide/workdir/configure-bin)
[INFO] [stderr]     Checking timetracker-print v0.4.3 (/opt/rustwide/workdir/print-bin)
[INFO] [stderr]     Checking timetracker-dump v0.4.3 (/opt/rustwide/workdir/dump-bin)
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.0
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking gdk v0.18.0
[INFO] [stderr]     Checking timetracker-print-gui v0.4.3 (/opt/rustwide/workdir/print-gui-bin)
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:167:56
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as usize);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:168:57
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as usize);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:167:56
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as usize);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:168:57
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as usize);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `env_logger`
[INFO] [stderr]   --> core/Cargo.toml:15:1
[INFO] [stderr]    |
[INFO] [stderr] 15 | env_logger = "0.11"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `env_logger`
[INFO] [stderr] warning: `timetracker-core` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `cc`
[INFO] [stderr]   --> recorder-bin/Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | cc = { version = "1.0", features = ["parallel"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `cc`
[INFO] [stderr] warning: unused dependency `pkg-config`
[INFO] [stderr]   --> recorder-bin/Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | pkg-config = "0.3"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `pkg-config`
[INFO] [stderr] warning: `timetracker-recorder` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f", kill_on_drop: false }`
[INFO] [stdout] 8a30c92eeea390de263eb75e17f46f0bb8277a14e87cd8f2bdd4cf37ef0e460f
