[INFO] cloning repository https://github.com/WondFS/WondFS-fuse [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WondFS/WondFS-fuse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c112a26239b63b5dc48ba93ad01a87a1bbcfe233 [INFO] checking WondFS/WondFS-fuse against master#ff0b4b6091a75ad840035a991426c8bc9fbd93bb for pr-117673 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/WondFS/WondFS-fuse on toolchain ff0b4b6091a75ad840035a991426c8bc9fbd93bb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff0b4b6091a75ad840035a991426c8bc9fbd93bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] finished tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] tweaked toml for git repo https://github.com/WondFS/WondFS-fuse written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/WondFS/WondFS-fuse 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" "+ff0b4b6091a75ad840035a991426c8bc9fbd93bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [ERROR] this task or one of its parent failed! [ERROR] no output for 300 seconds [ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace. [INFO] checking WondFS/WondFS-fuse against try#9ee647322baa27cc6bb1a95b4595bad94b334fcf for pr-117673 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/WondFS/WondFS-fuse on toolchain 9ee647322baa27cc6bb1a95b4595bad94b334fcf [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] finished tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] tweaked toml for git repo https://github.com/WondFS/WondFS-fuse written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/WondFS/WondFS-fuse 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" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "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 [ERROR] error running command: no output for 300 seconds [INFO] checking WondFS/WondFS-fuse against try#9ee647322baa27cc6bb1a95b4595bad94b334fcf for pr-117673 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWondFS%2FWondFS-fuse" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/WondFS/WondFS-fuse on toolchain 9ee647322baa27cc6bb1a95b4595bad94b334fcf [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] finished tweaking git repo https://github.com/WondFS/WondFS-fuse [INFO] tweaked toml for git repo https://github.com/WondFS/WondFS-fuse written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/WondFS/WondFS-fuse 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" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "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.8.4 [INFO] [stderr] Downloaded snap v1.0.5 [INFO] [stderr] Downloaded fuser v0.7.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:0c7e0e8312ad82a1bed3696438480b7da990d348377d3754e1cd95b06a8a36c7" "/opt/rustwide/cargo-home/bin/cargo" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e2e3c5bc1d9a7223b4170f6243f7b2e83817d3decb073b83f2cc585376d1a8b6 [INFO] running `Command { std: "docker" "start" "-a" "e2e3c5bc1d9a7223b4170f6243f7b2e83817d3decb073b83f2cc585376d1a8b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e2e3c5bc1d9a7223b4170f6243f7b2e83817d3decb073b83f2cc585376d1a8b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2e3c5bc1d9a7223b4170f6243f7b2e83817d3decb073b83f2cc585376d1a8b6", kill_on_drop: false }` [INFO] [stdout] e2e3c5bc1d9a7223b4170f6243f7b2e83817d3decb073b83f2cc585376d1a8b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:0c7e0e8312ad82a1bed3696438480b7da990d348377d3754e1cd95b06a8a36c7" "/opt/rustwide/cargo-home/bin/cargo" "+9ee647322baa27cc6bb1a95b4595bad94b334fcf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8bf54e01c4dc700d3555169a4b8afcd1a05c9bd54f5a73fdacf19d77f2ff1524 [INFO] running `Command { std: "docker" "start" "-a" "8bf54e01c4dc700d3555169a4b8afcd1a05c9bd54f5a73fdacf19d77f2ff1524", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.125 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Compiling snap v1.0.5 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking crc-catalog v2.1.0 [INFO] [stderr] Compiling fuser v0.7.0 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking users v0.11.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking page_size v0.4.2 [INFO] [stderr] Checking regex v1.5.5 [INFO] [stderr] Checking env_logger v0.8.4 [INFO] [stderr] Checking WondFS-fuse v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Filesystem` [INFO] [stdout] --> src/main.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use fuser::{Filesystem, MountOption}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::ecc` [INFO] [stdout] --> src/tl/check_center.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::util::ecc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/driver/disk_manager.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Filesystem` [INFO] [stdout] --> src/main.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use fuser::{Filesystem, MountOption}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::ecc` [INFO] [stdout] --> src/tl/check_center.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::util::ecc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/util/crc32.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![no_std] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/util/crc32.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![no_std] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:36:28 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:56:29 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:68:42 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn erase(&mut self, dev: u8, block_no: u32) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mode` [INFO] [stdout] --> src/fuse/fuse.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(mode) = _mode { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/core_manager.rs:683:29 [INFO] [stdout] | [INFO] [stdout] 683 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/core_manager.rs:696:29 [INFO] [stdout] | [INFO] [stdout] 696 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [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/core/core_manager.rs:701:29 [INFO] [stdout] | [INFO] [stdout] 701 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block_no` [INFO] [stdout] --> src/driver/disk.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/driver/disk.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/driver/disk.rs:34:48 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block_no` [INFO] [stdout] --> src/driver/disk.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn disk_erase(&mut self, block_no: u32) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:36:28 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn read(&mut self, dev: u8, address: u32) -> [u8; 4096] { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:56:29 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn write(&mut self, dev: u8, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:68:42 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dev` [INFO] [stdout] --> src/buf.rs:86:29 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn erase(&mut self, dev: u8, block_no: u32) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dev` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mode` [INFO] [stdout] --> src/fuse/fuse.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(mode) = _mode { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `space` is never read [INFO] [stdout] --> src/compress/huffman.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | let mut space = 0u8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_disk_speed` is never used [INFO] [stdout] --> src/tl/tl.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl TranslationLayer { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn get_disk_speed(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_block_direct` is never used [INFO] [stdout] --> src/tl/tl.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl TranslationLayer { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Used` and `Unused` are never constructed [INFO] [stdout] --> src/tl/tl_helper.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum BlockType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Used, // 被用作坏块映射 [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | Unused, // 未被使用的 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/gc/gc_event.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum GCEvent { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GCEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed [INFO] [stdout] --> src/gc/gc_define.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum GCStrategy { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 6 | Forward, // 前台GC [INFO] [stdout] 7 | BackgroundSimple, // 后台标准GC [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | BackgroundCold, // 后台回收冷块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_page` is never used [INFO] [stdout] --> src/gc/gc_manager.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl GCManager { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_page(&self, address: u32) -> PageUsedStatus { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_block_info` is never used [INFO] [stdout] --> src/gc/block_table.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl BlockTable { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_block_driect` is never used [INFO] [stdout] --> src/buf.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl BufCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_disk_speed` is never used [INFO] [stdout] --> src/buf.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 97 | impl BufCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 98 | pub fn get_disk_speed(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/buf.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 141 | pub struct Buf { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 142 | address: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Buf` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_groups` is never used [INFO] [stdout] --> src/fuse/permission.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creation_gid` is never used [INFO] [stdout] --> src/fuse/permission.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creation_mode` is never used [INFO] [stdout] --> src/fuse/permission.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_handle_read` is never used [INFO] [stdout] --> src/fuse/permission.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_handle_write` is never used [INFO] [stdout] --> src/fuse/permission.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_access` is never used [INFO] [stdout] --> src/fuse/permission.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn check_access( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used [INFO] [stdout] --> src/core/bit.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/core/bit.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BIT { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn get_bit_segment(&self, block_no: u32) -> BITSegement { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn get_page(&self, address: u32) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn get_last_erase_time(&self, block_no: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_erase_count(&self, block_no: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn set_erase_count(&mut self, block_no: u32, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn get_average_age(&self, block_no: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn set_average_age(&mut self, block_no: u32, age: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn get_block(&self, block_no: u32) -> Option<[bool; 128]> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn set_block(&mut self, block_no: u32, status: [bool; 128]) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used [INFO] [stdout] --> src/core/pit.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used [INFO] [stdout] --> src/core/pit.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used [INFO] [stdout] --> src/core/journal.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JournalType` is never used [INFO] [stdout] --> src/core/journal.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum JournalType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGICNUMBER` is never used [INFO] [stdout] --> src/core/super_stat.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read [INFO] [stdout] --> src/core/super_stat.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SuperStat { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 11 | magic_code: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | reserved_block_num: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | page_size: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/core/super_stat.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SuperStat { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_bit_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn get_bit_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn get_pit_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn get_pit_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn get_journal_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_journal_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_kv_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn get_kv_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn get_main_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn get_reserved_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn get_page_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_inode` and `delete_inode` are never used [INFO] [stdout] --> src/core/core_manager.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl CoreManager { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn update_inode(&mut self, inode: inode::Inode) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn delete_inode(&mut self, ino: u32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `background_gc` is never used [INFO] [stdout] --> src/core/core_manager.rs:151:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl CoreManager { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn background_gc(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_last_erase_time`, `set_erase_count`, and `set_average_age` are never used [INFO] [stdout] --> src/core/core_manager.rs:317:12 [INFO] [stdout] | [INFO] [stdout] 248 | impl CoreManager { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 317 | pub fn set_last_erase_time(&mut self, block_no: u32, time: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn set_erase_count(&mut self, block_no: u32, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub fn set_average_age(&mut self, block_no: u32, age: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `truncate_array_1_to_array_2` and `truncate_array_2_to_array_1` are never used [INFO] [stdout] --> src/core/core_manager.rs:845:12 [INFO] [stdout] | [INFO] [stdout] 746 | impl CoreManager { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 845 | pub fn truncate_array_1_to_array_2(array: array::Array1<[u8; 4096]>) -> array::Array2:: { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 859 | pub fn truncate_array_2_to_array_1(array: array::Array2) -> array::Array1::<[u8; 4096]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `crc` and `value` are never read [INFO] [stdout] --> src/util/crc32.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Digest<'a, W: Width> { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 13 | crc: &'a Crc, [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | value: W, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Digest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `digest` and `digest_with_initial` are never used [INFO] [stdout] --> src/util/crc32.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl Crc { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 69 | pub const fn digest(&self) -> Digest { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub const fn digest_with_initial(&self, initial: u32) -> Digest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, and `finalize` are never used [INFO] [stdout] --> src/util/crc32.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 84 | impl<'a> Digest<'a, u32> { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 85 | const fn new(crc: &'a Crc, value: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn update(&mut self, bytes: &[u8]) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub const fn finalize(self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used [INFO] [stdout] --> src/util/array.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Array1 { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn get_by_index(&self,index: u32) -> T { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn set_by_index(&mut self, index: u32, value: T) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/util/array.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl Array2 { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 82 | pub fn new(row: u32, column: u32) -> Array2 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn len(&self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn size(&self) -> [u32; 2] { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn init(&mut self, value: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn get(&self, row: u32, column: u32) -> T { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn get_index(&self, index: u32) -> T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn set(&mut self, row: u32, column: u32, value: T) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn set_index(&mut self, index: u32, value: T) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn iter(&self) -> Iter2<'_, T> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn dup(&self) -> Array2 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/util/array.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 138 | impl<'a, T: Copy> Iter2<'a, T> { [INFO] [stdout] | ------------------------------ associated function in this implementation [INFO] [stdout] 139 | fn new(array: &'a s_array::SArray) -> Iter2<'a, T> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_size` is never used [INFO] [stdout] --> src/util/s_array.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl SArray { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn get_size(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_size` and `contains_key` are never used [INFO] [stdout] --> src/util/lru_cache.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl LRUCache { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn contains_key(&self, key: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/util/safe_linked_list.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 17 | impl Node { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 18 | fn new(elem: T) -> Rc> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/util/safe_linked_list.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl List { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn push_front(&mut self, elem: T) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn push_back(&mut self, elem: T) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn peek_front(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn peek_back(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn peek_front_mut(&mut self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn peek_back_mut(&mut self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn into_iter(self) -> IntoIter { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/util/unsafe_linked_list.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl List { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 26 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn push(&mut self, elem: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn peek(&self) -> Option<&T> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn peek_mut(&mut self) -> Option<&mut T> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn into_iter(self) -> IntoIter { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug` is never used [INFO] [stdout] --> src/inode/inode.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl Inode { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn debug(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `insert` and `dup` are never used [INFO] [stdout] --> src/inode/inode.rs:274:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl Inode { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 274 | pub fn insert(&mut self, offset: u32, len: u32, buf: &Vec) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | pub fn dup(&mut self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `size` and `capacity` are never read [INFO] [stdout] --> src/inode/inode_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct InodeManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 15 | size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | capacity: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used [INFO] [stdout] --> src/inode/inode_manager.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl InodeManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn get_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_capacity(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `i_dup` is never used [INFO] [stdout] --> src/inode/inode_manager.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl InodeManager { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn i_dup(&mut self, inode: &InodeLink) -> InodeLink { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/inode/inode_event.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum InodeEvent { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 62 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InodeEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `skip_elem` is never used [INFO] [stdout] --> src/common/path.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn skip_elem(path: String) -> Option<(String, String)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `name_x` is never used [INFO] [stdout] --> src/common/path.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn name_x(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String, name_i_parent: bool) -> Option src/common/path.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn name_i(i_manager: &mut inode_manager::InodeManager, path: String) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `name_i_parent` is never used [INFO] [stdout] --> src/common/path.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn name_i_parent(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NONE`, `PIPE`, `INODE`, and `DEVICE` are never constructed [INFO] [stdout] --> src/common/file.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum FileDescriptorType { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] 7 | NONE, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | PIPE, [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | INODE, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | DEVICE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FileType` is never used [INFO] [stdout] --> src/common/file.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum FileType { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStat` is never constructed [INFO] [stdout] --> src/common/file.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FileStat { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `File` is never constructed [INFO] [stdout] --> src/common/file.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct File { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `file_stat`, `file_read`, and `file_write` are never used [INFO] [stdout] --> src/common/file.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl File { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 37 | // Get metadata about file f. [INFO] [stdout] 38 | pub fn file_stat(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn file_read(&mut self, len: u32, buf: &mut Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn file_write(&mut self, len: u32, buf: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `transfer_inode_stat_to_stat`, and `transfer_stat_to_inode` are never used [INFO] [stdout] --> src/common/file.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl File { [INFO] [stdout] | --------- associated functions in this implementation [INFO] [stdout] 82 | pub fn new() -> File { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn transfer_inode_stat_to_stat(inode_stat: inode::InodeStat) -> FileStat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn transfer_stat_to_inode(stat: FileStat) -> inode::InodeStat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileTable` is never constructed [INFO] [stdout] --> src/common/file_table.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct FileTable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FileLink` is never used [INFO] [stdout] --> src/common/file_table.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 14 | pub type FileLink = Arc>; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `file_alloc`, `file_dup`, and `file_close` are never used [INFO] [stdout] --> src/common/file_table.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileTable { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> FileTable { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn file_alloc(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn file_dup(&mut self, link: &FileLink) -> FileLink { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn file_close(&mut self, link: FileLink) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/compress/snappy.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Snappy { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `RefHuffmanTree` is never used [INFO] [stdout] --> src/compress/huffman.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type RefHuffmanTree = Rc>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Weight` is never used [INFO] [stdout] --> src/compress/huffman.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type Weight = u32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HuffmanTree` is never constructed [INFO] [stdout] --> src/compress/huffman.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct HuffmanTree { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `build`, and `find_min` are never used [INFO] [stdout] --> src/compress/huffman.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl HuffmanTree { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 21 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn build(char_weight: CharWeightMap) -> RefHuffmanTree { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | fn find_min(tree_slice: &[Rc>]) -> Option>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CharWeightMap` is never constructed [INFO] [stdout] --> src/compress/huffman.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct CharWeightMap { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `build`, `len`, and `iter` are never used [INFO] [stdout] --> src/compress/huffman.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl CharWeightMap { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 78 | pub fn build() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `build` and `tree_dfs` are never used [INFO] [stdout] --> src/compress/huffman.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl HuffmanBinaryMap { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 107 | pub fn build(huffman_tree: RefHuffmanTree) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn tree_dfs( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/compress/huffman.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 154 | impl HuffmanCodec { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 155 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `build` is never used [INFO] [stdout] --> src/compress/huffman.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 243 | impl DecodeConfig { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 244 | pub fn build(source: &String) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Huffman`, `Snappy`, and `None` are never constructed [INFO] [stdout] --> src/compress/compress.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum CompressType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 6 | Huffman, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 7 | Snappy, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 8 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CompressType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CompressManager` is never constructed [INFO] [stdout] --> src/compress/compress.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct CompressManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/compress/compress.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl CompressManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 24 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn encode(&mut self, bytes: &[u8]) -> (Vec, CompressType) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn decode(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn choose_compress_type_except(&self, except: &Vec) -> CompressType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn judge_encode_effect(o_data: &[u8], data: &Vec, compress_type: CompressType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_size` is never used [INFO] [stdout] --> src/write_buf.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl WriteCache { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn get_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/write_buf.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 133 | impl WriteBuf { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 134 | fn new(address: u32, data: [u8; 4096]) -> WriteBuf { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `wond_fs_fuse` [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/core_manager.rs:683:29 [INFO] [stdout] | [INFO] [stdout] 683 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/core_manager.rs:696:29 [INFO] [stdout] | [INFO] [stdout] 696 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [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/core/core_manager.rs:701:29 [INFO] [stdout] | [INFO] [stdout] 701 | let mut entry = inode.data.get_mut(event.index as usize).unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block_no` [INFO] [stdout] --> src/driver/disk.rs:24:29 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn disk_read(&self, block_no: u32) -> [[u8; 4096]; 128] { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/driver/disk.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/driver/disk.rs:34:48 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn disk_write(&mut self, address: u32, data: [u8; 4096]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block_no` [INFO] [stdout] --> src/driver/disk.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn disk_erase(&mut self, block_no: u32) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_no` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 95 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `space` is never read [INFO] [stdout] --> src/compress/huffman.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | let mut space = 0u8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_disk_speed` is never used [INFO] [stdout] --> src/tl/tl.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl TranslationLayer { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn get_disk_speed(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_block_direct` is never used [INFO] [stdout] --> src/tl/tl.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl TranslationLayer { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn write_block_direct(&mut self, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const MAGIC_NUMBER_1: u32 = 0x2222ffff; // 标志坏块映射块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const MAGIC_NUMBER_2: u32 = 0x3333aaaa; // 标志校验存储块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Used` and `Unused` are never constructed [INFO] [stdout] --> src/tl/tl_helper.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum BlockType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 10 | Used, // 被用作坏块映射 [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | Unused, // 未被使用的 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reverse` is never used [INFO] [stdout] --> src/tl/tl_helper.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn reverse(data: &array::Array1<[u8; 4096]>) -> [[u8; 4096]; 128] { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/gc/gc_event.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum GCEvent { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GCEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BackgroundSimple` and `BackgroundCold` are never constructed [INFO] [stdout] --> src/gc/gc_define.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum GCStrategy { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 6 | Forward, // 前台GC [INFO] [stdout] 7 | BackgroundSimple, // 后台标准GC [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | BackgroundCold, // 后台回收冷块 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_block_info` is never used [INFO] [stdout] --> src/gc/block_table.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl BlockTable { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn set_block_info(&mut self, block_no: u32, info: BlockInfo) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write_block_driect` is never used [INFO] [stdout] --> src/buf.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl BufCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn write_block_driect(&mut self, dev: u8, block_no: u32, data: array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_disk_speed` is never used [INFO] [stdout] --> src/buf.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 97 | impl BufCache { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 98 | pub fn get_disk_speed(&self) -> (u32, u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `address` is never read [INFO] [stdout] --> src/buf.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 141 | pub struct Buf { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 142 | address: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Buf` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_groups` is never used [INFO] [stdout] --> src/fuse/permission.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn get_groups(pid: u32) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creation_gid` is never used [INFO] [stdout] --> src/fuse/permission.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn creation_gid(parent: &inode::InodeStat, gid: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `creation_mode` is never used [INFO] [stdout] --> src/fuse/permission.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn creation_mode(mode: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_handle_read` is never used [INFO] [stdout] --> src/fuse/permission.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn check_file_handle_read(file_handle: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_file_handle_write` is never used [INFO] [stdout] --> src/fuse/permission.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn check_file_handle_write(file_handle: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_access` is never used [INFO] [stdout] --> src/fuse/permission.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn check_access( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used [INFO] [stdout] --> src/core/bit.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x5555dddd; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_bit_segment` and `set_bit_segment` are never used [INFO] [stdout] --> src/core/bit.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl BIT { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn get_bit_segment(&self, block_no: u32) -> BITSegement { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn set_bit_segment(&mut self, block_no: u32, segment: BITSegement) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_1` is never used [INFO] [stdout] --> src/core/pit.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER_1: u32 = 0x7777dddd; // 标志PIT Region的存储方式为Map [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER_2` is never used [INFO] [stdout] --> src/core/pit.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const MAGIC_NUMBER_2: u32 = 0x7777eeee; // 标志PIT Region的存储方式为Serial [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGIC_NUMBER` is never used [INFO] [stdout] --> src/core/journal.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const MAGIC_NUMBER: u32 = 0x7777ffff; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JournalType` is never used [INFO] [stdout] --> src/core/journal.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum JournalType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAGICNUMBER` is never used [INFO] [stdout] --> src/core/super_stat.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const MAGICNUMBER: u32 = 0x3bf7444d; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `magic_code`, `reserved_block_num`, and `page_size` are never read [INFO] [stdout] --> src/core/super_stat.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SuperStat { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 11 | magic_code: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | reserved_block_num: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | page_size: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/core/super_stat.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SuperStat { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn build(&mut self, data: &array::Array1::<[u8; 4096]>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_bit_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn get_bit_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn get_pit_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn get_pit_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn get_journal_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_journal_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_kv_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn get_kv_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn get_main_offset(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn get_reserved_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn get_page_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `background_gc` is never used [INFO] [stdout] --> src/core/core_manager.rs:151:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl CoreManager { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn background_gc(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_by_index` and `set_by_index` are never used [INFO] [stdout] --> src/util/array.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Array1 { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn get_by_index(&self,index: u32) -> T { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn set_by_index(&mut self, index: u32, value: T) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_size` and `contains_key` are never used [INFO] [stdout] --> src/util/lru_cache.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl LRUCache { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn contains_key(&self, key: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug` is never used [INFO] [stdout] --> src/inode/inode.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl Inode { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn debug(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `dup` is never used [INFO] [stdout] --> src/inode/inode.rs:517:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl Inode { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 517 | pub fn dup(&mut self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `size` and `capacity` are never read [INFO] [stdout] --> src/inode/inode_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct InodeManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 15 | size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | capacity: usize, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_size` and `get_capacity` are never used [INFO] [stdout] --> src/inode/inode_manager.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl InodeManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn get_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_capacity(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/inode/inode_event.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum InodeEvent { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 62 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InodeEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `name_i` is never used [INFO] [stdout] --> src/common/path.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn name_i(i_manager: &mut inode_manager::InodeManager, path: String) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `name_i_parent` is never used [INFO] [stdout] --> src/common/path.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn name_i_parent(i_manager: &mut inode_manager::InodeManager, path: String, name: &mut String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PIPE`, `INODE`, and `DEVICE` are never constructed [INFO] [stdout] --> src/common/file.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum FileDescriptorType { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] 7 | NONE, [INFO] [stdout] 8 | PIPE, [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | INODE, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | DEVICE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FileType` is never used [INFO] [stdout] --> src/common/file.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum FileType { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStat` is never constructed [INFO] [stdout] --> src/common/file.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FileStat { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `file_stat`, `file_read`, and `file_write` are never used [INFO] [stdout] --> src/common/file.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl File { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 37 | // Get metadata about file f. [INFO] [stdout] 38 | pub fn file_stat(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn file_read(&mut self, len: u32, buf: &mut Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn file_write(&mut self, len: u32, buf: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `transfer_inode_stat_to_stat` and `transfer_stat_to_inode` are never used [INFO] [stdout] --> src/common/file.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 81 | impl File { [INFO] [stdout] | --------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn transfer_inode_stat_to_stat(inode_stat: inode::InodeStat) -> FileStat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn transfer_stat_to_inode(stat: FileStat) -> inode::InodeStat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `encode_with_type` and `get_compress_type_score` are never used [INFO] [stdout] --> src/compress/compress.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl CompressManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn encode_with_type(&mut self, bytes: &[u8], compress_type: CompressType) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get_compress_type_score(&self, compress_type: CompressType) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_size` is never used [INFO] [stdout] --> src/write_buf.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl WriteCache { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn get_size(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/write_buf.rs:134:8 [INFO] [stdout] | [INFO] [stdout] 133 | impl WriteBuf { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 134 | fn new(address: u32, data: [u8; 4096]) -> WriteBuf { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `WondFS_fuse` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `wond_fs_fuse` [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 62 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.07s [INFO] running `Command { std: "docker" "inspect" "8bf54e01c4dc700d3555169a4b8afcd1a05c9bd54f5a73fdacf19d77f2ff1524", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8bf54e01c4dc700d3555169a4b8afcd1a05c9bd54f5a73fdacf19d77f2ff1524", kill_on_drop: false }` [INFO] [stdout] 8bf54e01c4dc700d3555169a4b8afcd1a05c9bd54f5a73fdacf19d77f2ff1524