[INFO] cloning repository https://github.com/obsidrielle/timefs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/obsidrielle/timefs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fobsidrielle%2Ftimefs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fobsidrielle%2Ftimefs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac203911cc27f59d321b425c126aee9cd0f1b4ba
[INFO] building obsidrielle/timefs against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fobsidrielle%2Ftimefs" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/obsidrielle/timefs
[INFO] finished tweaking git repo https://github.com/obsidrielle/timefs
[INFO] tweaked toml for git repo https://github.com/obsidrielle/timefs written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/obsidrielle/timefs on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/obsidrielle/timefs 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded users v0.11.0
[INFO] [stderr]   Downloaded page_size v0.6.0
[INFO] [stderr]   Downloaded generator v0.8.4
[INFO] [stderr]   Downloaded lru v0.14.0
[INFO] [stderr]   Downloaded jiff v0.2.10
[INFO] [stderr]   Downloaded jiff-static v0.2.10
[INFO] [stderr]   Downloaded fuser v0.15.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 503d515eff7b79b33e31901adfe2697c03697f965213da2e0c11962cb7693916
[INFO] running `Command { std: "docker" "start" "-a" "503d515eff7b79b33e31901adfe2697c03697f965213da2e0c11962cb7693916", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "503d515eff7b79b33e31901adfe2697c03697f965213da2e0c11962cb7693916", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "503d515eff7b79b33e31901adfe2697c03697f965213da2e0c11962cb7693916", kill_on_drop: false }`
[INFO] [stdout] 503d515eff7b79b33e31901adfe2697c03697f965213da2e0c11962cb7693916
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 89315708727e625478830b4c229c70e47435933e1feb948471d9a081c07898ae
[INFO] running `Command { std: "docker" "start" "-a" "89315708727e625478830b4c229c70e47435933e1feb948471d9a081c07898ae", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling bitflags v2.9.0
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling rustix v1.0.5
[INFO] [stderr]    Compiling fuser v0.15.1
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling jiff v0.2.10
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling flate2 v1.1.1
[INFO] [stderr]    Compiling lru v0.14.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling socket2 v0.5.9
[INFO] [stderr]    Compiling users v0.11.0
[INFO] [stderr]    Compiling uuid v1.16.0
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling tempfile v3.19.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerocopy-derive v0.8.25
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling tokio v1.44.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling clap v4.5.37
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling moka v0.12.10
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling time-fs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/fs.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NonZeroUsize` and `NonZero`
[INFO] [stdout]  --> src/fs.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::num::{NonZero, NonZeroUsize};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EEXIST`, `EISDIR`, and `ENOENT`
[INFO] [stdout]   --> src/fs.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use libc::{c_int, EEXIST, EISDIR, ENOENT};
[INFO] [stdout]    |                   ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AutoSave`
[INFO] [stdout]   --> src/fs.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::{AutoSave, Result};
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/inode.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize, Serializer};
[INFO] [stdout]   |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/block.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/block.rs:269:33
[INFO] [stdout]     |
[INFO] [stdout] 269 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/block.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fs.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut inodes = DashMap::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs.rs:242:47
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fh`
[INFO] [stdout]    --> src/fs.rs:242:57
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reply`
[INFO] [stdout]    --> src/fs.rs:242:74
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_reply`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bin_file` is never used
[INFO] [stdout]   --> src/main.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) fn from_bin_file<T: DeserializeOwned>(path: &Path) -> Result<T> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_bin_file` is never used
[INFO] [stdout]   --> src/main.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) fn write_to_bin_file<T: Serialize>(val: &T, path: &Path) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bin_compressed_file` is never used
[INFO] [stdout]   --> src/main.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) fn from_bin_compressed_file<T: DeserializeOwned>(path: &Path) -> Result<T> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_bin_compressed_file` is never used
[INFO] [stdout]   --> src/main.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) fn write_to_bin_compressed_file<T: Serialize>(val: &T, path: &Path) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AutoSave` is never constructed
[INFO] [stdout]   --> src/main.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub(crate) struct AutoSave<T>
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/main.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | / impl<'a, T> AutoSave<T> 
[INFO] [stdout] 55 | | where T: Serialize {
[INFO] [stdout]    | |__________________- associated function in this implementation
[INFO] [stdout] 56 |       fn new(inner: T, path: impl AsRef<Path>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/fs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const BLOCK_SIZE: u32 = 4096;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeFS` is never constructed
[INFO] [stdout]   --> src/fs.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) struct TimeFS {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs.rs:38:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl TimeFS {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  38 |     fn new(mount_path: impl AsRef<Path>, storage_path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn create_root_inode() -> INode {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn get_next_inode_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn get_next_block_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn get_inode(&self, id: u64) -> Result<impl Deref<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn get_inode_mut(&self, id: u64) -> Result<impl DerefMut<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn get_inode_by_name(&self, parent: u64, name: impl AsRef<str>) -> Result<impl Deref<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn get_inode_mut_by_name(&self, parent: u64, name: impl AsRef<str>) -> Result<impl DerefMut<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn create_file(&self, parent: u64, name: impl AsRef<str>, flags: i32) -> Result<(FileAttr, u64)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn alloc_inode(&self, parent: u64, kind: FileType) -> INode {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn alloc_file_handle(&self, inode_id: u64, flags: i32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn get_attr(&self, inode_id: u64) -> Result<FileAttr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `INodeType` is never used
[INFO] [stdout]   --> src/inode.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum INodeType {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty_file` and `empty_directory` are never used
[INFO] [stdout]   --> src/inode.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl INodeType {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn empty_file() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn empty_directory() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `INode` is never constructed
[INFO] [stdout]   --> src/inode.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct INode {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/inode.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl INode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn with_file_size(id: u64, block_id: u64, parent: u64, attr: FileAttr, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn with_directory_entries(id: u64, parent: u64, attr: FileAttr, entries: HashMap<String, u64>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn new_autosave(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn write_to_file(&self, inode_dir: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn from_file(id: u64, inode_dir: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_file_autosave(id: u64, inode_dir: &Path) -> Result<AutoSave<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_file(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn is_directory(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn get_child_id(&self, name: impl AsRef<str>) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperBlock` is never constructed
[INFO] [stdout]   --> src/superblock.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct SuperBlock {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/superblock.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SuperBlock {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn from_file(path: impl AsRef<Path>) -> crate::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_next_inode_id(&mut self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_next_block_id(&mut self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to_file(&self, path: impl AsRef<Path>) -> crate::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn new_block(&mut self) -> BlockRef {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn alloc_inode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileHandle` is never constructed
[INFO] [stdout]  --> src/file_handle.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct FileHandle {
[INFO] [stdout]   |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/file_handle.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl FileHandle {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 7 |     #[inline]
[INFO] [stdout] 8 |     pub(crate) fn new(inode_id: u64, flags: i32) -> Self {
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileFlags` is never used
[INFO] [stdout]   --> src/file_handle.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) trait FileFlags {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockRef` is never constructed
[INFO] [stdout]   --> src/block.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct BlockRef {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheEntry` is never constructed
[INFO] [stdout]   --> src/block.rs:36:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct CacheEntry {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockOperation` is never used
[INFO] [stdout]   --> src/block.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum BlockOperation {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Blocks` is never used
[INFO] [stdout]   --> src/block.rs:49:6
[INFO] [stdout]    |
[INFO] [stdout] 49 | type Blocks = Arc<Cache<u64, CacheEntry>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DirtyTracer` is never used
[INFO] [stdout]   --> src/block.rs:50:6
[INFO] [stdout]    |
[INFO] [stdout] 50 | type DirtyTracer = Arc<DashMap<u64, Instant>>;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BGHandle` is never used
[INFO] [stdout]   --> src/block.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | type BGHandle = Arc<Mutex<Option<std::thread::JoinHandle<()>>>>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockCache` is never constructed
[INFO] [stdout]   --> src/block.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) struct BlockCache {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/block.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl BlockCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  63 |     pub fn new(max_capacity: u64, blocks_dir: &Path, flush_interval_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn get_block_path(&self, block_id: u64) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn get_block(&self, block_id: u64) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn update_block(&self, block_id: u64, data: Vec<u8>) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn background_thread(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub async fn flush_block(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     async fn flush_block_static(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     async fn periodic_flush_task(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     async fn write_block_to_disk(path: &Path, data: &[u8]) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn get_block_path_static(blocks_dir: &Path, block_id: u64) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     async fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `alloc_blocks` are never used
[INFO] [stdout]    --> src/block.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | impl BlockRef {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 377 |     pub fn new(id: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn alloc_blocks(start_id: u64, size: u64) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileAttrBuilder` is never constructed
[INFO] [stdout]  --> src/file_attr.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct FileAttrBuilder {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/file_attr.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl FileAttrBuilder {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout]  25 |     pub fn ino(mut self, ino: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn size(mut self, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn blocks(mut self, blocks: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn atime(mut self, atime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn mtime(mut self, mtime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn ctime(mut self, ctime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn crtime(mut self, crtime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn kind(mut self, kind: FileType) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn perm(mut self, perm: u16) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn nlink(mut self, nlink: u32) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn uid(mut self, uid: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn gid(mut self, gid: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn rdev(mut self, rdev: u32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn blksize(mut self, blksize: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn with_size(mut self, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn zero_size(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn with_now(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_current_user(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_regular_file(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_directory(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn with_owner_read_write_other_read_write(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn with_owner_read_write_other_read(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_everyone_read_write(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn build(self) -> FileAttr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.63s
[INFO] running `Command { std: "docker" "inspect" "89315708727e625478830b4c229c70e47435933e1feb948471d9a081c07898ae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89315708727e625478830b4c229c70e47435933e1feb948471d9a081c07898ae", kill_on_drop: false }`
[INFO] [stdout] 89315708727e625478830b4c229c70e47435933e1feb948471d9a081c07898ae
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 18e53ff30c915c390e05e82507fa46e4d9adbeca514ac890eaa7b619bbe5f510
[INFO] running `Command { std: "docker" "start" "-a" "18e53ff30c915c390e05e82507fa46e4d9adbeca514ac890eaa7b619bbe5f510", kill_on_drop: false }`
[INFO] [stderr]    Compiling time-fs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/fs.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NonZeroUsize` and `NonZero`
[INFO] [stdout]  --> src/fs.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::num::{NonZero, NonZeroUsize};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EEXIST`, `EISDIR`, and `ENOENT`
[INFO] [stdout]   --> src/fs.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use libc::{c_int, EEXIST, EISDIR, ENOENT};
[INFO] [stdout]    |                   ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AutoSave`
[INFO] [stdout]   --> src/fs.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::{AutoSave, Result};
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serializer`
[INFO] [stdout]  --> src/inode.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize, Serializer};
[INFO] [stdout]   |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/block.rs:269:33
[INFO] [stdout]     |
[INFO] [stdout] 269 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/block.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fs.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut inodes = DashMap::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs.rs:242:47
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fh`
[INFO] [stdout]    --> src/fs.rs:242:57
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reply`
[INFO] [stdout]    --> src/fs.rs:242:74
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn getattr(&mut self, _req: &Request<'_>, ino: u64, fh: Option<u64>, reply: ReplyAttr) {
[INFO] [stdout]     |                                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_reply`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/block.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let mut cache = BlockCache::new(
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/block.rs:434:17
[INFO] [stdout]     |
[INFO] [stdout] 434 |             let mut cache = BlockCache::new(1000, &cache_dir, 30);
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/block.rs:439:17
[INFO] [stdout]     |
[INFO] [stdout] 439 |             let mut cache = BlockCache::new(1000, &cache_dir, 30);
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/block.rs:452:13
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let mut cache = BlockCache::new(1000, &cache_dir, flush_interval_secs);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/block.rs:482:13
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let mut cache = BlockCache::new(1000, &cache_dir, 3600);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bin_file` is never used
[INFO] [stdout]   --> src/main.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) fn from_bin_file<T: DeserializeOwned>(path: &Path) -> Result<T> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_bin_file` is never used
[INFO] [stdout]   --> src/main.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) fn write_to_bin_file<T: Serialize>(val: &T, path: &Path) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bin_compressed_file` is never used
[INFO] [stdout]   --> src/main.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) fn from_bin_compressed_file<T: DeserializeOwned>(path: &Path) -> Result<T> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_bin_compressed_file` is never used
[INFO] [stdout]   --> src/main.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) fn write_to_bin_compressed_file<T: Serialize>(val: &T, path: &Path) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AutoSave` is never constructed
[INFO] [stdout]   --> src/main.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub(crate) struct AutoSave<T>
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/main.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | / impl<'a, T> AutoSave<T> 
[INFO] [stdout] 55 | | where T: Serialize {
[INFO] [stdout]    | |__________________- associated function in this implementation
[INFO] [stdout] 56 |       fn new(inner: T, path: impl AsRef<Path>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/fs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const BLOCK_SIZE: u32 = 4096;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeFS` is never constructed
[INFO] [stdout]   --> src/fs.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) struct TimeFS {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs.rs:38:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl TimeFS {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  38 |     fn new(mount_path: impl AsRef<Path>, storage_path: impl AsRef<Path>) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn create_root_inode() -> INode {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn get_next_inode_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn get_next_block_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn get_inode(&self, id: u64) -> Result<impl Deref<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn get_inode_mut(&self, id: u64) -> Result<impl DerefMut<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn get_inode_by_name(&self, parent: u64, name: impl AsRef<str>) -> Result<impl Deref<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn get_inode_mut_by_name(&self, parent: u64, name: impl AsRef<str>) -> Result<impl DerefMut<Target = INode> + '_> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn create_file(&self, parent: u64, name: impl AsRef<str>, flags: i32) -> Result<(FileAttr, u64)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn alloc_inode(&self, parent: u64, kind: FileType) -> INode {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn alloc_file_handle(&self, inode_id: u64, flags: i32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn get_attr(&self, inode_id: u64) -> Result<FileAttr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `INodeType` is never used
[INFO] [stdout]   --> src/inode.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum INodeType {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty_file` and `empty_directory` are never used
[INFO] [stdout]   --> src/inode.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl INodeType {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 21 |     pub fn empty_file() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn empty_directory() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `INode` is never constructed
[INFO] [stdout]   --> src/inode.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct INode {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/inode.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl INode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn with_file_size(id: u64, block_id: u64, parent: u64, attr: FileAttr, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn with_directory_entries(id: u64, parent: u64, attr: FileAttr, entries: HashMap<String, u64>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn new_autosave(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn write_to_file(&self, inode_dir: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn from_file(id: u64, inode_dir: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_file_autosave(id: u64, inode_dir: &Path) -> Result<AutoSave<Self>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_file(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn is_directory(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn get_child_id(&self, name: impl AsRef<str>) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperBlock` is never constructed
[INFO] [stdout]   --> src/superblock.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct SuperBlock {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/superblock.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SuperBlock {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn from_file(path: impl AsRef<Path>) -> crate::Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn get_next_inode_id(&mut self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn get_next_block_id(&mut self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to_file(&self, path: impl AsRef<Path>) -> crate::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn new_block(&mut self) -> BlockRef {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn alloc_inode(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileHandle` is never constructed
[INFO] [stdout]  --> src/file_handle.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct FileHandle {
[INFO] [stdout]   |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/file_handle.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl FileHandle {
[INFO] [stdout]   | --------------- associated function in this implementation
[INFO] [stdout] 7 |     #[inline]
[INFO] [stdout] 8 |     pub(crate) fn new(inode_id: u64, flags: i32) -> Self {
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileFlags` is never used
[INFO] [stdout]   --> src/file_handle.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) trait FileFlags {
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockRef` is never constructed
[INFO] [stdout]   --> src/block.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) struct BlockRef {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_modified` is never read
[INFO] [stdout]   --> src/block.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct CacheEntry {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     last_modified: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CacheEntry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Flush` is never constructed
[INFO] [stdout]   --> src/block.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum BlockOperation {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 43 |     MarkDirty(u64, Instant),
[INFO] [stdout] 44 |     Flush(u64),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `runtime` is never read
[INFO] [stdout]   --> src/block.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) struct BlockCache {
[INFO] [stdout]    |                   ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 58 |     runtime: tokio::runtime::Handle,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `alloc_blocks` are never used
[INFO] [stdout]    --> src/block.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | impl BlockRef {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] 377 |     pub fn new(id: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn alloc_blocks(start_id: u64, size: u64) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileAttrBuilder` is never constructed
[INFO] [stdout]  --> src/file_attr.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct FileAttrBuilder {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/file_attr.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl FileAttrBuilder {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout]  25 |     pub fn ino(mut self, ino: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn size(mut self, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn blocks(mut self, blocks: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn atime(mut self, atime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn mtime(mut self, mtime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn ctime(mut self, ctime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn crtime(mut self, crtime: SystemTime) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn kind(mut self, kind: FileType) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn perm(mut self, perm: u16) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn nlink(mut self, nlink: u32) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn uid(mut self, uid: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn gid(mut self, gid: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn rdev(mut self, rdev: u32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn blksize(mut self, blksize: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn with_size(mut self, size: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn zero_size(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn with_now(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn with_current_user(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn with_regular_file(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_directory(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn with_owner_read_write_other_read_write(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn with_owner_read_write_other_read(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn with_everyone_read_write(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn build(self) -> FileAttr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.21s
[INFO] running `Command { std: "docker" "inspect" "18e53ff30c915c390e05e82507fa46e4d9adbeca514ac890eaa7b619bbe5f510", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18e53ff30c915c390e05e82507fa46e4d9adbeca514ac890eaa7b619bbe5f510", kill_on_drop: false }`
[INFO] [stdout] 18e53ff30c915c390e05e82507fa46e4d9adbeca514ac890eaa7b619bbe5f510
