[INFO] cloning repository https://github.com/laohanlinux/bitcask-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/laohanlinux/bitcask-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flaohanlinux%2Fbitcask-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flaohanlinux%2Fbitcask-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f1e11194db15bf55f578e2abd385b1ea3d47b98b [INFO] testing laohanlinux/bitcask-rs against try#613d1972a772987ed4ee06faccbab0e2fc839871+rustflags=-Copt-level=3 for pr-107051 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flaohanlinux%2Fbitcask-rs" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/laohanlinux/bitcask-rs on toolchain 613d1972a772987ed4ee06faccbab0e2fc839871 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/laohanlinux/bitcask-rs [INFO] finished tweaking git repo https://github.com/laohanlinux/bitcask-rs [INFO] tweaked toml for git repo https://github.com/laohanlinux/bitcask-rs written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/laohanlinux/bitcask-rs 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" "+613d1972a772987ed4ee06faccbab0e2fc839871" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a665ebb82ee35c068ba34716035a455604db3aa1080695b8a34804798654f067 [INFO] running `Command { std: "docker" "start" "-a" "a665ebb82ee35c068ba34716035a455604db3aa1080695b8a34804798654f067", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a665ebb82ee35c068ba34716035a455604db3aa1080695b8a34804798654f067", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a665ebb82ee35c068ba34716035a455604db3aa1080695b8a34804798654f067", kill_on_drop: false }` [INFO] [stdout] a665ebb82ee35c068ba34716035a455604db3aa1080695b8a34804798654f067 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8205cd7f858378335a15a8f23fcd8ea048d7ebfa120b70ac57d8f103860902fd [INFO] running `Command { std: "docker" "start" "-a" "8205cd7f858378335a15a8f23fcd8ea048d7ebfa120b70ac57d8f103860902fd", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.85 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.6 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling serde_derive v1.0.133 [INFO] [stderr] Compiling serde v1.0.133 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling crossbeam-epoch v0.9.6 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling crossbeam-queue v0.3.3 [INFO] [stderr] Compiling anyhow v1.0.52 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling serde_json v1.0.74 [INFO] [stderr] Compiling unreachable v1.0.0 [INFO] [stderr] Compiling itoa v1.0.1 [INFO] [stderr] Compiling crc-catalog v1.1.1 [INFO] [stderr] Compiling ryu v1.0.9 [INFO] [stderr] Compiling remove_dir_all v0.5.3 [INFO] [stderr] Compiling new_debug_unreachable v1.0.4 [INFO] [stderr] Compiling qp-trie v0.7.7 [INFO] [stderr] Compiling crc v2.1.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling crossbeam-channel v0.5.2 [INFO] [stderr] Compiling value-bag v1.0.0-alpha.8 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling fd-lock v3.0.2 [INFO] [stderr] Compiling fslock v0.2.1 [INFO] [stderr] Compiling filename v0.1.1 [INFO] [stderr] Compiling quote v1.0.14 [INFO] [stderr] Compiling crossbeam-deque v0.8.1 [INFO] [stderr] Compiling crossbeam v0.8.1 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling ctor v0.1.21 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling thiserror v1.0.30 [INFO] [stderr] Compiling bytes v1.1.0 [INFO] [stderr] Compiling toml v0.5.8 [INFO] [stderr] Compiling bitcask-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `FileType`, `File` [INFO] [stdout] --> src/config.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{File, FileType}; [INFO] [stdout] | ^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NoMoreData` [INFO] [stdout] --> src/data_file.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::BitCaskError::{NoMoreData, UnexpectedError}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/data_file.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hint::Hint` [INFO] [stdout] --> src/data_file.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::hint::Hint; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Indexer` [INFO] [stdout] --> src/data_file.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/data_file.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/data_file.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::End` [INFO] [stdout] --> src/data_file.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::SeekFrom::End; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/entry.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefCell`, `RefMut` [INFO] [stdout] --> src/entry.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/entry.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::Current` [INFO] [stdout] --> src/entry.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::SeekFrom::Current; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufReader` [INFO] [stdout] --> src/entry.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::{BufReader, BufWriter, Cursor, Read, Write}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `BigEndian` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | --------- the item `BigEndian` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ReadBytesExt` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:36 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ------------ the item `ReadBytesExt` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Bytes` is imported redundantly [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ------------ the item `Bytes` is already imported here [INFO] [stdout] ... [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/hint.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `kv_log_macro::debug` [INFO] [stdout] --> src/hint.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use kv_log_macro::debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Seek` [INFO] [stdout] --> src/hint.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Cursor, Read, Seek, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/hint.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/metadata.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Bytes` [INFO] [stdout] --> src/metadata.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write_bytes` [INFO] [stdout] --> src/metadata.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ptr::write_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/radix_tree.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entry::Entry` [INFO] [stdout] --> src/radix_tree.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::entry::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::BitCaskError::NoMoreData` [INFO] [stdout] --> src/radix_tree.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::BitCaskError::NoMoreData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hint::Hint` [INFO] [stdout] --> src/radix_tree.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::hint::Hint; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::Unexpected::Bytes` [INFO] [stdout] --> src/radix_tree.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use serde::de::Unexpected::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize` [INFO] [stdout] --> src/radix_tree.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/radix_tree.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/radix_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/radix_tree.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fs::{File, OpenOptions}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader`, `SeekFrom`, `Seek` [INFO] [stdout] --> src/radix_tree.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::{BufReader, BufWriter, Cursor, Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/radix_tree.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/radix_tree.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::spawn` [INFO] [stdout] --> src/radix_tree.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::thread::spawn; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decode`, `Encode` [INFO] [stdout] --> src/recover.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode}; [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entry::Entry` [INFO] [stdout] --> src/recover.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::entry::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/recover.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Config` [INFO] [stdout] --> src/recover.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{config, Config}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/recover.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/recover.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/recover.rs:10:28 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fs::{remove_file, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCask` [INFO] [stdout] --> src/util.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{BitCask, UnexpectedError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `expire_key` [INFO] [stdout] --> src/lib.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::util::{expire_hint, expire_key, load_index_from_data_file}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam::sync::WaitGroup` [INFO] [stdout] --> src/lib.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crossbeam::sync::WaitGroup; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/lib.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Debug` [INFO] [stdout] --> src/lib.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use std::fmt::Debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File`, `OpenOptions` [INFO] [stdout] --> src/lib.rs:41:36 [INFO] [stdout] | [INFO] [stdout] 41 | use std::fs::{remove_file, rename, File, OpenOptions}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stdout] --> src/lib.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Once` [INFO] [stdout] --> src/lib.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | use std::sync::{Arc, Mutex, MutexGuard, Once}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoinHandle`, `sleep` [INFO] [stdout] --> src/lib.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | use std::thread::{sleep, spawn, JoinHandle}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/lib.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `path_try_exists` has been stable since 1.63.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(path_try_exists)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 62 | / loop { [INFO] [stdout] 63 | | let interval = crossbeam_channel::after(Duration::from_secs(cfg.auto_merge_interval_check)); [INFO] [stdout] 64 | | select! { [INFO] [stdout] 65 | | recv(interval) -> msg => { [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 99 | info!("finish call Once, tid: {}", tid); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::log_impl` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/data_file.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io::{Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `filename::Filename` [INFO] [stdout] --> src/data_file.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use filename::Filename; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/data_file.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadBytesExt` [INFO] [stdout] --> src/entry.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/data_file.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let offset = fs.stream_len().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/data_file.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | Ok(entry) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | pub(crate) fn recover_last_data_file(path: &str, cfg: &config::Config) -> Result { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | cfg: config::Config, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg` [INFO] [stdout] --> src/lib.rs:65:31 [INFO] [stdout] | [INFO] [stdout] 65 | recv(interval) -> msg => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> src/lib.rs:68:25 [INFO] [stdout] | [INFO] [stdout] 68 | recv(rx) -> ch => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/lib.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | if let Some(index) = bc.hint_index.get(key) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hint` [INFO] [stdout] --> src/lib.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | for (key, hint) in bc.hint_index.iter_prefix(&prefix).into_iter() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hint` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `entry_sz` is never read [INFO] [stdout] --> src/lib.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | let mut entry_sz = 0; [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: unused variable: `key` [INFO] [stdout] --> src/lib.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | for (key, hint) in key_values { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/key_value.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | let mut v = vec![8; 0]; [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/lib.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut bc = self.lc(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `reopen` is never used [INFO] [stdout] --> src/lib.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | fn reopen(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `base_name` is never used [INFO] [stdout] --> src/data_file.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | pub(crate) fn base_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_all` is never used [INFO] [stdout] --> src/data_file.rs:115:19 [INFO] [stdout] | [INFO] [stdout] 115 | pub(crate) fn read_all(&mut self) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `to_vec` is never used [INFO] [stdout] --> src/entry.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 81 | pub(crate) fn to_vec(&self) -> Result> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sure_tmp_dir` is never used [INFO] [stdout] --> src/tests_util.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sure_tmp_dir(prefix: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expire_key` is never used [INFO] [stdout] --> src/util.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) fn expire_key() -> impl FnMut(&Entry) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/lib.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | tx.send(()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 84 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 34s [INFO] running `Command { std: "docker" "inspect" "8205cd7f858378335a15a8f23fcd8ea048d7ebfa120b70ac57d8f103860902fd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8205cd7f858378335a15a8f23fcd8ea048d7ebfa120b70ac57d8f103860902fd", kill_on_drop: false }` [INFO] [stdout] 8205cd7f858378335a15a8f23fcd8ea048d7ebfa120b70ac57d8f103860902fd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c4c4e3435ed6fd31da29cdadb1e8abf74de8c0758933cbd4eb6d18c48cf7b56c [INFO] running `Command { std: "docker" "start" "-a" "c4c4e3435ed6fd31da29cdadb1e8abf74de8c0758933cbd4eb6d18c48cf7b56c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.6 [INFO] [stderr] Compiling semver v1.0.4 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Compiling arrayvec v0.4.12 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling itoa v0.4.8 [INFO] [stderr] Compiling ahash v0.7.6 [INFO] [stderr] Compiling indexmap v1.8.0 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Compiling plotters-backend v0.3.2 [INFO] [stderr] Compiling unicode-width v0.1.9 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling uuid v0.8.2 [INFO] [stderr] Compiling nodrop v0.1.14 [INFO] [stderr] Compiling cpp_demangle v0.3.5 [INFO] [stderr] Compiling debugid v0.7.2 [INFO] [stderr] Compiling plotters-svg v0.3.1 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling itertools v0.10.3 [INFO] [stderr] Compiling instant v0.1.12 [INFO] [stderr] Compiling crossbeam-epoch v0.9.6 [INFO] [stderr] Compiling crossbeam-channel v0.5.2 [INFO] [stderr] Compiling once_cell v1.9.0 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling symbolic-demangle v8.5.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling rustc-demangle v0.1.21 [INFO] [stderr] Compiling crossbeam-deque v0.8.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling bstr v0.2.17 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling getrandom v0.2.3 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling bytemuck v1.7.3 [INFO] [stderr] Compiling half v1.8.2 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling gimli v0.26.1 [INFO] [stderr] Compiling smallvec v1.8.0 [INFO] [stderr] Compiling rgb v0.8.31 [INFO] [stderr] Compiling cast v0.2.7 [INFO] [stderr] Compiling serde_cbor v0.11.2 [INFO] [stderr] Compiling symbolic-common v8.5.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling criterion-plot v0.4.4 [INFO] [stderr] Compiling csv v1.1.6 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling object v0.27.1 [INFO] [stderr] Compiling quick-xml v0.22.0 [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling plotters v0.3.1 [INFO] [stderr] Compiling num-format v0.4.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.3 [INFO] [stderr] Compiling clap v2.34.0 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling lock_api v0.4.5 [INFO] [stderr] Compiling names v0.12.0 [INFO] [stderr] Compiling pprof v0.4.5 [INFO] [stderr] Compiling fastrand v1.7.0 [INFO] [stderr] Compiling oorandom v11.1.3 [INFO] [stderr] Compiling addr2line v0.17.0 [INFO] [stderr] Compiling str_stack v0.1.0 [INFO] [stderr] Compiling inferno v0.10.10 [INFO] [stderr] Compiling tempfile v3.3.0 [INFO] [stderr] Compiling parking_lot v0.11.2 [INFO] [stderr] Compiling crossbeam v0.8.1 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling tempdir v0.3.7 [INFO] [stderr] Compiling rand v0.8.4 [INFO] [stderr] Compiling fd-lock v3.0.2 [INFO] [stderr] Compiling fslock v0.2.1 [INFO] [stderr] Compiling backtrace v0.3.63 [INFO] [stderr] Compiling thread-id v3.3.0 [INFO] [stderr] Compiling filename v0.1.1 [INFO] [stderr] Compiling nix v0.20.2 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling simple-logging v2.0.2 [INFO] [stderr] Compiling criterion v0.3.5 [INFO] [stderr] Compiling env_logger v0.9.0 [INFO] [stderr] Compiling threadpool v1.8.1 [INFO] [stderr] Compiling random v0.12.2 [INFO] [stderr] Compiling bra v0.1.1 [INFO] [stderr] Compiling bitcask-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `FileType`, `File` [INFO] [stdout] --> src/config.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{File, FileType}; [INFO] [stdout] | ^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NoMoreData` [INFO] [stdout] --> src/data_file.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::BitCaskError::{NoMoreData, UnexpectedError}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/data_file.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hint::Hint` [INFO] [stdout] --> src/data_file.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::hint::Hint; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Indexer` [INFO] [stdout] --> src/data_file.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/data_file.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/data_file.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::End` [INFO] [stdout] --> src/data_file.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::SeekFrom::End; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/entry.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefCell`, `RefMut` [INFO] [stdout] --> src/entry.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/entry.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::Current` [INFO] [stdout] --> src/entry.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::SeekFrom::Current; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufReader` [INFO] [stdout] --> src/entry.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::{BufReader, BufWriter, Cursor, Read, Write}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `BigEndian` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | --------- the item `BigEndian` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ReadBytesExt` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:36 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ------------ the item `ReadBytesExt` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Bytes` is imported redundantly [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ------------ the item `Bytes` is already imported here [INFO] [stdout] ... [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/hint.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `kv_log_macro::debug` [INFO] [stdout] --> src/hint.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use kv_log_macro::debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Seek` [INFO] [stdout] --> src/hint.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Cursor, Read, Seek, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/hint.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/metadata.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Bytes` [INFO] [stdout] --> src/metadata.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write_bytes` [INFO] [stdout] --> src/metadata.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ptr::write_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/radix_tree.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entry::Entry` [INFO] [stdout] --> src/radix_tree.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::entry::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::BitCaskError::NoMoreData` [INFO] [stdout] --> src/radix_tree.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::BitCaskError::NoMoreData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hint::Hint` [INFO] [stdout] --> src/radix_tree.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::hint::Hint; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::Unexpected::Bytes` [INFO] [stdout] --> src/radix_tree.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use serde::de::Unexpected::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize` [INFO] [stdout] --> src/radix_tree.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/radix_tree.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/radix_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/radix_tree.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fs::{File, OpenOptions}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader`, `SeekFrom`, `Seek` [INFO] [stdout] --> src/radix_tree.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::{BufReader, BufWriter, Cursor, Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/radix_tree.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/radix_tree.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::spawn` [INFO] [stdout] --> src/radix_tree.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::thread::spawn; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decode`, `Encode` [INFO] [stdout] --> src/recover.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode}; [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entry::Entry` [INFO] [stdout] --> src/recover.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::entry::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/recover.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Config` [INFO] [stdout] --> src/recover.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{config, Config}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/recover.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/recover.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/recover.rs:10:28 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fs::{remove_file, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCask` [INFO] [stdout] --> src/util.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{BitCask, UnexpectedError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `expire_key` [INFO] [stdout] --> src/lib.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::util::{expire_hint, expire_key, load_index_from_data_file}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam::sync::WaitGroup` [INFO] [stdout] --> src/lib.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crossbeam::sync::WaitGroup; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/lib.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Debug` [INFO] [stdout] --> src/lib.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use std::fmt::Debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File`, `OpenOptions` [INFO] [stdout] --> src/lib.rs:41:36 [INFO] [stdout] | [INFO] [stdout] 41 | use std::fs::{remove_file, rename, File, OpenOptions}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stdout] --> src/lib.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Once` [INFO] [stdout] --> src/lib.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | use std::sync::{Arc, Mutex, MutexGuard, Once}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoinHandle`, `sleep` [INFO] [stdout] --> src/lib.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | use std::thread::{sleep, spawn, JoinHandle}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/lib.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `path_try_exists` has been stable since 1.63.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(path_try_exists)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 62 | / loop { [INFO] [stdout] 63 | | let interval = crossbeam_channel::after(Duration::from_secs(cfg.auto_merge_interval_check)); [INFO] [stdout] 64 | | select! { [INFO] [stdout] 65 | | recv(interval) -> msg => { [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 99 | info!("finish call Once, tid: {}", tid); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::log_impl` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/data_file.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io::{Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `filename::Filename` [INFO] [stdout] --> src/data_file.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use filename::Filename; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/data_file.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadBytesExt` [INFO] [stdout] --> src/entry.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/data_file.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let offset = fs.stream_len().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/data_file.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | Ok(entry) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | pub(crate) fn recover_last_data_file(path: &str, cfg: &config::Config) -> Result { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | cfg: config::Config, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg` [INFO] [stdout] --> src/lib.rs:65:31 [INFO] [stdout] | [INFO] [stdout] 65 | recv(interval) -> msg => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> src/lib.rs:68:25 [INFO] [stdout] | [INFO] [stdout] 68 | recv(rx) -> ch => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/lib.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | if let Some(index) = bc.hint_index.get(key) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hint` [INFO] [stdout] --> src/lib.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | for (key, hint) in bc.hint_index.iter_prefix(&prefix).into_iter() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hint` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `entry_sz` is never read [INFO] [stdout] --> src/lib.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | let mut entry_sz = 0; [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: unused variable: `key` [INFO] [stdout] --> src/lib.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | for (key, hint) in key_values { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/key_value.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | let mut v = vec![8; 0]; [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/lib.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut bc = self.lc(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `reopen` is never used [INFO] [stdout] --> src/lib.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | fn reopen(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `base_name` is never used [INFO] [stdout] --> src/data_file.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | pub(crate) fn base_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_all` is never used [INFO] [stdout] --> src/data_file.rs:115:19 [INFO] [stdout] | [INFO] [stdout] 115 | pub(crate) fn read_all(&mut self) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `to_vec` is never used [INFO] [stdout] --> src/entry.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 81 | pub(crate) fn to_vec(&self) -> Result> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sure_tmp_dir` is never used [INFO] [stdout] --> src/tests_util.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sure_tmp_dir(prefix: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expire_key` is never used [INFO] [stdout] --> src/util.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) fn expire_key() -> impl FnMut(&Entry) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/lib.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | tx.send(()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 84 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FileType`, `File` [INFO] [stdout] --> src/config.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::{File, FileType}; [INFO] [stdout] | ^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NoMoreData` [INFO] [stdout] --> src/data_file.rs:4:34 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::BitCaskError::{NoMoreData, UnexpectedError}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/data_file.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::hint::Hint` [INFO] [stdout] --> src/data_file.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::hint::Hint; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Indexer` [INFO] [stdout] --> src/data_file.rs:7:32 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/data_file.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/data_file.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::End` [INFO] [stdout] --> src/data_file.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::SeekFrom::End; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/entry.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefCell`, `RefMut` [INFO] [stdout] --> src/entry.rs:9:17 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/entry.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::SeekFrom::Current` [INFO] [stdout] --> src/entry.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::io::SeekFrom::Current; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufReader` [INFO] [stdout] --> src/entry.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | use std::io::{BufReader, BufWriter, Cursor, Read, Write}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `BigEndian` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | --------- the item `BigEndian` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `ReadBytesExt` is imported redundantly [INFO] [stdout] --> src/entry.rs:134:36 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ------------ the item `ReadBytesExt` is already imported here [INFO] [stdout] ... [INFO] [stdout] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Bytes` is imported redundantly [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::Bytes; [INFO] [stdout] | ------------ the item `Bytes` is already imported here [INFO] [stdout] ... [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::Bytes` [INFO] [stdout] --> src/entry.rs:135:13 [INFO] [stdout] | [INFO] [stdout] 135 | use bytes::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/hint.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `kv_log_macro::debug` [INFO] [stdout] --> src/hint.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use kv_log_macro::debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Seek` [INFO] [stdout] --> src/hint.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Cursor, Read, Seek, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/hint.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/key_value.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/metadata.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Bytes` [INFO] [stdout] --> src/metadata.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::write_bytes` [INFO] [stdout] --> src/metadata.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ptr::write_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyValue` [INFO] [stdout] --> src/radix_tree.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::BitCaskError::NoMoreData` [INFO] [stdout] --> src/radix_tree.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::BitCaskError::NoMoreData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::Unexpected::Bytes` [INFO] [stdout] --> src/radix_tree.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use serde::de::Unexpected::Bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize` [INFO] [stdout] --> src/radix_tree.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/radix_tree.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/radix_tree.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/radix_tree.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | use std::fs::{File, OpenOptions}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader`, `SeekFrom`, `Seek` [INFO] [stdout] --> src/radix_tree.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | use std::io::{BufReader, BufWriter, Cursor, Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^^^^^ ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/radix_tree.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `Mutex` [INFO] [stdout] --> src/radix_tree.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::spawn` [INFO] [stdout] --> src/radix_tree.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::thread::spawn; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Decode`, `Encode` [INFO] [stdout] --> src/recover.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::codec::{Decode, Encode}; [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::entry::Entry` [INFO] [stdout] --> src/recover.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::entry::Entry; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCaskError` [INFO] [stdout] --> src/recover.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::{BitCaskError, Result}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Config` [INFO] [stdout] --> src/recover.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{config, Config}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/recover.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/recover.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/recover.rs:10:28 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fs::{remove_file, File}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DataFile`, `Hint`, `Indexer`, `Persisted` [INFO] [stdout] --> src/tests.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{BitCask, Config, DataFile, Entry, Hint, Index, Indexer, Persisted}; [INFO] [stdout] | ^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam_channel::select` [INFO] [stdout] --> src/tests.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | use crossbeam_channel::select; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Target` [INFO] [stdout] --> src/tests.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use env_logger::{Env, Target}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log_enabled` [INFO] [stdout] --> src/tests.rs:6:28 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{debug, info, log_enabled}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OpenOptions` [INFO] [stdout] --> src/tests.rs:9:35 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fs::{remove_dir_all, OpenOptions}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Cursor` [INFO] [stdout] --> src/tests.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::Cursor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::Chars` [INFO] [stdout] --> src/tests.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | use std::str::Chars; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stdout] --> src/tests.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::channel` [INFO] [stdout] --> src/tests.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | use std::sync::mpsc::channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `spawn` [INFO] [stdout] --> src/tests.rs:15:30 [INFO] [stdout] | [INFO] [stdout] 15 | use std::thread::{sleep, spawn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/tests.rs:16:31 [INFO] [stdout] | [INFO] [stdout] 16 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tempdir::TempDir` [INFO] [stdout] --> src/tests.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | use tempdir::TempDir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/tests.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `env_logger::Builder` [INFO] [stdout] --> src/tests.rs:381:13 [INFO] [stdout] | [INFO] [stdout] 381 | use env_logger::Builder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::LevelFilter` [INFO] [stdout] --> src/tests.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | use log::LevelFilter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/tests.rs:383:13 [INFO] [stdout] | [INFO] [stdout] 383 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BitCask` [INFO] [stdout] --> src/util.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{BitCask, UnexpectedError}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `expire_key` [INFO] [stdout] --> src/lib.rs:30:32 [INFO] [stdout] | [INFO] [stdout] 30 | use crate::util::{expire_hint, expire_key, load_index_from_data_file}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam::sync::WaitGroup` [INFO] [stdout] --> src/lib.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crossbeam::sync::WaitGroup; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/lib.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Debug` [INFO] [stdout] --> src/lib.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | use std::fmt::Debug; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File`, `OpenOptions` [INFO] [stdout] --> src/lib.rs:41:36 [INFO] [stdout] | [INFO] [stdout] 41 | use std::fs::{remove_file, rename, File, OpenOptions}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stdout] --> src/lib.rs:44:25 [INFO] [stdout] | [INFO] [stdout] 44 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Once` [INFO] [stdout] --> src/lib.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | use std::sync::{Arc, Mutex, MutexGuard, Once}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoinHandle`, `sleep` [INFO] [stdout] --> src/lib.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | use std::thread::{sleep, spawn, JoinHandle}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/lib.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `path_try_exists` has been stable since 1.63.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | #![feature(path_try_exists)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 62 | / loop { [INFO] [stdout] 63 | | let interval = crossbeam_channel::after(Duration::from_secs(cfg.auto_merge_interval_check)); [INFO] [stdout] 64 | | select! { [INFO] [stdout] 65 | | recv(interval) -> msg => { [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 99 | info!("finish call Once, tid: {}", tid); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::log_impl` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/data_file.rs:16:37 [INFO] [stdout] | [INFO] [stdout] 16 | use std::io::{Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `filename::Filename` [INFO] [stdout] --> src/data_file.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use filename::Filename; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Index` [INFO] [stdout] --> src/data_file.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadBytesExt` [INFO] [stdout] --> src/entry.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/data_file.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | let offset = fs.stream_len().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry` [INFO] [stdout] --> src/data_file.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | Ok(entry) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:176:50 [INFO] [stdout] | [INFO] [stdout] 176 | pub(crate) fn recover_last_data_file(path: &str, cfg: &config::Config) -> Result { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cfg` [INFO] [stdout] --> src/data_file.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | cfg: config::Config, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/data_file.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | for i in 0..10 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hint.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | for i in 0..100000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hint1` is never read [INFO] [stdout] --> src/tests.rs:163:17 [INFO] [stdout] | [INFO] [stdout] 163 | let mut hint1 = HashMap::new(); [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: unused variable: `i` [INFO] [stdout] --> src/tests.rs:167:17 [INFO] [stdout] | [INFO] [stdout] 167 | for i in 1..=n { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hint2` is never read [INFO] [stdout] --> src/tests.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | let mut hint2 = HashMap::new(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/tests.rs:197:23 [INFO] [stdout] | [INFO] [stdout] 197 | for (key, value) in hint2 { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tests.rs:221:17 [INFO] [stdout] | [INFO] [stdout] 221 | for i in 1..=1 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tests.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | for i in 0..num { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num` [INFO] [stdout] --> src/tests.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | let num = entries.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num` [INFO] [stdout] --> src/tests.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | let num = entries.len(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tests.rs:311:13 [INFO] [stdout] | [INFO] [stdout] 311 | for i in 0..num { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tests.rs:318:13 [INFO] [stdout] | [INFO] [stdout] 318 | for i in 0..20 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/tests.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | for i in 0..50 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `final_entries` [INFO] [stdout] --> src/tests.rs:339:13 [INFO] [stdout] | [INFO] [stdout] 339 | let final_entries = bitcask.lc().entries(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_entries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/tests.rs:358:49 [INFO] [stdout] | [INFO] [stdout] 358 | bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/tests.rs:358:54 [INFO] [stdout] | [INFO] [stdout] 358 | bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/tests.rs:365:49 [INFO] [stdout] | [INFO] [stdout] 365 | bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/tests.rs:365:54 [INFO] [stdout] | [INFO] [stdout] 365 | bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/tests.rs:372:48 [INFO] [stdout] | [INFO] [stdout] 372 | bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/tests.rs:372:53 [INFO] [stdout] | [INFO] [stdout] 372 | bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg` [INFO] [stdout] --> src/lib.rs:65:31 [INFO] [stdout] | [INFO] [stdout] 65 | recv(interval) -> msg => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> src/lib.rs:68:25 [INFO] [stdout] | [INFO] [stdout] 68 | recv(rx) -> ch => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/lib.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | if let Some(index) = bc.hint_index.get(key) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hint` [INFO] [stdout] --> src/lib.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | for (key, hint) in bc.hint_index.iter_prefix(&prefix).into_iter() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hint` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `entry_sz` is never read [INFO] [stdout] --> src/lib.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | let mut entry_sz = 0; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/lib.rs:523:14 [INFO] [stdout] | [INFO] [stdout] 523 | for (key, hint) in key_values { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/data_file.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | let mut entry = Entry::new( [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/key_value.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | let mut v = vec![8; 0]; [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/tests.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | let mut bitcask = generate_n(10000, 3); [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/tests.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | let mut cfg = Config::default().auto_sync(false); [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/tests.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 120 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).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/tests.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [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/tests.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).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/tests.rs:148:21 [INFO] [stdout] | [INFO] [stdout] 148 | let mut value = generate_n_sz_buffer(1 << 10); [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/tests.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [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/tests.rs:158:17 [INFO] [stdout] | [INFO] [stdout] 158 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).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/tests.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [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/tests.rs:188:17 [INFO] [stdout] | [INFO] [stdout] 188 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).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/tests.rs:275:13 [INFO] [stdout] | [INFO] [stdout] 275 | let mut timout_n = 103; [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/tests.rs:436:13 [INFO] [stdout] | [INFO] [stdout] 436 | let mut cfg = Config::default().auto_sync(false); [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/lib.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | let mut bc = self.lc(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `reopen` is never used [INFO] [stdout] --> src/lib.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | fn reopen(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `base_name` is never used [INFO] [stdout] --> src/data_file.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | pub(crate) fn base_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `read_all` is never used [INFO] [stdout] --> src/data_file.rs:115:19 [INFO] [stdout] | [INFO] [stdout] 115 | pub(crate) fn read_all(&mut self) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `to_vec` is never used [INFO] [stdout] --> src/entry.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 81 | pub(crate) fn to_vec(&self) -> Result> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `filter` is never used [INFO] [stdout] --> src/radix_tree.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | fn filter(v: Vec, f: Option bool>) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mock2` is never used [INFO] [stdout] --> src/tests.rs:398:8 [INFO] [stdout] | [INFO] [stdout] 398 | fn mock2(prefix: impl Into>, flag: String) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expire_key` is never used [INFO] [stdout] --> src/util.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) fn expire_key() -> impl FnMut(&Entry) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/lib.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | tx.send(()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | bitcask.unwrap().close(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | bitcask.delete(&del_key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:219:17 [INFO] [stdout] | [INFO] [stdout] 219 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:222:17 [INFO] [stdout] | [INFO] [stdout] 222 | bitcask.merge(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | bitcask.delete(&key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | bitcask.close(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:281:13 [INFO] [stdout] | [INFO] [stdout] 281 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:288:9 [INFO] [stdout] | [INFO] [stdout] 288 | bitcask.close(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:300:9 [INFO] [stdout] | [INFO] [stdout] 300 | remove_dir_all(Path::new(&tmp)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:358:9 [INFO] [stdout] | [INFO] [stdout] 358 | / bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] 359 | | n += 1; [INFO] [stdout] 360 | | Ok(()) [INFO] [stdout] 361 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:365:9 [INFO] [stdout] | [INFO] [stdout] 365 | / bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] 366 | | n += 1; [INFO] [stdout] 367 | | Ok(()) [INFO] [stdout] 368 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:372:9 [INFO] [stdout] | [INFO] [stdout] 372 | / bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stdout] 373 | | n += 1; [INFO] [stdout] 374 | | Ok(()) [INFO] [stdout] 375 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | env_logger::try_init_from_env(Env::new().default_filter_or("info")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tests.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | / builder [INFO] [stdout] 406 | | .format(move |buf, record| { [INFO] [stdout] 407 | | writeln!( [INFO] [stdout] 408 | | buf, [INFO] [stdout] ... | [INFO] [stdout] 418 | | .filter(None, LevelFilter::Debug) [INFO] [stdout] 419 | | .try_init(); [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 148 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1m 52s [INFO] running `Command { std: "docker" "inspect" "c4c4e3435ed6fd31da29cdadb1e8abf74de8c0758933cbd4eb6d18c48cf7b56c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c4c4e3435ed6fd31da29cdadb1e8abf74de8c0758933cbd4eb6d18c48cf7b56c", kill_on_drop: false }` [INFO] [stdout] c4c4e3435ed6fd31da29cdadb1e8abf74de8c0758933cbd4eb6d18c48cf7b56c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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 -Copt-level=3" "-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:7c93e6f9a94679f34221d1005849d4c83862f85b14a264fa0883942f4d043a66" "/opt/rustwide/cargo-home/bin/cargo" "+613d1972a772987ed4ee06faccbab0e2fc839871" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 97490b353d6f1dc82c5f8826544973aa2dbb598f4cdc9c8c62d44facfb828cd6 [INFO] running `Command { std: "docker" "start" "-a" "97490b353d6f1dc82c5f8826544973aa2dbb598f4cdc9c8c62d44facfb828cd6", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `FileType`, `File` [INFO] [stderr] --> src/config.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use std::fs::{File, FileType}; [INFO] [stderr] | ^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `NoMoreData` [INFO] [stderr] --> src/data_file.rs:4:34 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::error::BitCaskError::{NoMoreData, UnexpectedError}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitCaskError` [INFO] [stderr] --> src/data_file.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::error::{BitCaskError, Result}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::hint::Hint` [INFO] [stderr] --> src/data_file.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::hint::Hint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Indexer` [INFO] [stderr] --> src/data_file.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stderr] --> src/data_file.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/data_file.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::SeekFrom::End` [INFO] [stderr] --> src/data_file.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::io::SeekFrom::End; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bytes::Bytes` [INFO] [stderr] --> src/entry.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use bytes::Bytes; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log::debug` [INFO] [stderr] --> src/entry.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use log::debug; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut` [INFO] [stderr] --> src/entry.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | use std::cell::{RefCell, RefMut}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/entry.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::SeekFrom::Current` [INFO] [stderr] --> src/entry.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::io::SeekFrom::Current; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufReader` [INFO] [stderr] --> src/entry.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | use std::io::{BufReader, BufWriter, Cursor, Read, Write}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `BigEndian` is imported redundantly [INFO] [stderr] --> src/entry.rs:134:25 [INFO] [stderr] | [INFO] [stderr] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stderr] | --------- the item `BigEndian` is already imported here [INFO] [stderr] ... [INFO] [stderr] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `ReadBytesExt` is imported redundantly [INFO] [stderr] --> src/entry.rs:134:36 [INFO] [stderr] | [INFO] [stderr] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stderr] | ------------ the item `ReadBytesExt` is already imported here [INFO] [stderr] ... [INFO] [stderr] 134 | use byteorder::{BigEndian, ReadBytesExt}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `Bytes` is imported redundantly [INFO] [stderr] --> src/entry.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 5 | use bytes::Bytes; [INFO] [stderr] | ------------ the item `Bytes` is already imported here [INFO] [stderr] ... [INFO] [stderr] 135 | use bytes::Bytes; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `bytes::Bytes` [INFO] [stderr] --> src/entry.rs:135:13 [INFO] [stderr] | [INFO] [stderr] 135 | use bytes::Bytes; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `KeyValue` [INFO] [stderr] --> src/hint.rs:1:36 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `kv_log_macro::debug` [INFO] [stderr] --> src/hint.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use kv_log_macro::debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Seek` [INFO] [stderr] --> src/hint.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::{Cursor, Read, Seek, Write}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log::info` [INFO] [stderr] --> src/hint.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use log::info; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/key_value.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/key_value.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/key_value.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/metadata.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Bytes` [INFO] [stderr] --> src/metadata.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::Bytes; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr::write_bytes` [INFO] [stderr] --> src/metadata.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ptr::write_bytes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `KeyValue` [INFO] [stderr] --> src/radix_tree.rs:1:36 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::codec::{Decode, Encode, KeyValue}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::entry::Entry` [INFO] [stderr] --> src/radix_tree.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::entry::Entry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::error::BitCaskError::NoMoreData` [INFO] [stderr] --> src/radix_tree.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::error::BitCaskError::NoMoreData; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::hint::Hint` [INFO] [stderr] --> src/radix_tree.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::hint::Hint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::de::Unexpected::Bytes` [INFO] [stderr] --> src/radix_tree.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use serde::de::Unexpected::Bytes; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize` [INFO] [stderr] --> src/radix_tree.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/radix_tree.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/radix_tree.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/radix_tree.rs:14:15 [INFO] [stderr] | [INFO] [stderr] 14 | use std::fs::{File, OpenOptions}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `SeekFrom`, `Seek` [INFO] [stderr] --> src/radix_tree.rs:15:15 [INFO] [stderr] | [INFO] [stderr] 15 | use std::io::{BufReader, BufWriter, Cursor, Read, Seek, SeekFrom, Write}; [INFO] [stderr] | ^^^^^^^^^ ^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/radix_tree.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arc`, `Mutex` [INFO] [stderr] --> src/radix_tree.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | use std::sync::{Arc, Mutex}; [INFO] [stderr] | ^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::spawn` [INFO] [stderr] --> src/radix_tree.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::thread::spawn; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Decode`, `Encode` [INFO] [stderr] --> src/recover.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::codec::{Decode, Encode}; [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::entry::Entry` [INFO] [stderr] --> src/recover.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::entry::Entry; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitCaskError` [INFO] [stderr] --> src/recover.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::error::{BitCaskError, Result}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Config` [INFO] [stderr] --> src/recover.rs:6:21 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::{config, Config}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `warn` [INFO] [stderr] --> src/recover.rs:8:18 [INFO] [stderr] | [INFO] [stderr] 8 | use log::{debug, warn}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/recover.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `File` [INFO] [stderr] --> src/recover.rs:10:28 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fs::{remove_file, File}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BitCask` [INFO] [stderr] --> src/util.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::{BitCask, UnexpectedError}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/util.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `expire_key` [INFO] [stderr] --> src/lib.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | use crate::util::{expire_hint, expire_key, load_index_from_data_file}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crossbeam::sync::WaitGroup` [INFO] [stderr] --> src/lib.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | use crossbeam::sync::WaitGroup; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/lib.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/lib.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/lib.rs:41:36 [INFO] [stderr] | [INFO] [stderr] 41 | use std::fs::{remove_file, rename, File, OpenOptions}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stderr] --> src/lib.rs:44:25 [INFO] [stderr] | [INFO] [stderr] 44 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Once` [INFO] [stderr] --> src/lib.rs:45:41 [INFO] [stderr] | [INFO] [stderr] 45 | use std::sync::{Arc, Mutex, MutexGuard, Once}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `JoinHandle`, `sleep` [INFO] [stderr] --> src/lib.rs:46:19 [INFO] [stderr] | [INFO] [stderr] 46 | use std::thread::{sleep, spawn, JoinHandle}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Instant` [INFO] [stderr] --> src/lib.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the feature `path_try_exists` has been stable since 1.63.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/lib.rs:4:12 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(path_try_exists)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/lib.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 62 | / loop { [INFO] [stderr] 63 | | let interval = crossbeam_channel::after(Duration::from_secs(cfg.auto_merge_interval_check)); [INFO] [stderr] 64 | | select! { [INFO] [stderr] 65 | | recv(interval) -> msg => { [INFO] [stderr] ... | [INFO] [stderr] 97 | | } [INFO] [stderr] 98 | | } [INFO] [stderr] | |_____- any code following this expression is unreachable [INFO] [stderr] 99 | info!("finish call Once, tid: {}", tid); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] = note: this warning originates in the macro `$crate::log_impl` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused import: `Write` [INFO] [stderr] --> src/data_file.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | use std::io::{Read, Seek, SeekFrom, Write}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `filename::Filename` [INFO] [stderr] --> src/data_file.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use filename::Filename; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Index` [INFO] [stderr] --> src/data_file.rs:7:25 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::radix_tree::{Index, Indexer}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadBytesExt` [INFO] [stderr] --> src/entry.rs:4:28 [INFO] [stderr] | [INFO] [stderr] 4 | use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/data_file.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | let offset = fs.stream_len().unwrap(); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/data_file.rs:190:16 [INFO] [stderr] | [INFO] [stderr] 190 | Ok(entry) => {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cfg` [INFO] [stderr] --> src/data_file.rs:176:50 [INFO] [stderr] | [INFO] [stderr] 176 | pub(crate) fn recover_last_data_file(path: &str, cfg: &config::Config) -> Result { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cfg` [INFO] [stderr] --> src/data_file.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | cfg: config::Config, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cfg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/lib.rs:65:31 [INFO] [stderr] | [INFO] [stderr] 65 | recv(interval) -> msg => { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_msg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ch` [INFO] [stderr] --> src/lib.rs:68:25 [INFO] [stderr] | [INFO] [stderr] 68 | recv(rx) -> ch => { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/lib.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | if let Some(index) = bc.hint_index.get(key) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hint` [INFO] [stderr] --> src/lib.rs:203:19 [INFO] [stderr] | [INFO] [stderr] 203 | for (key, hint) in bc.hint_index.iter_prefix(&prefix).into_iter() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hint` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `entry_sz` is never read [INFO] [stderr] --> src/lib.rs:352:17 [INFO] [stderr] | [INFO] [stderr] 352 | let mut entry_sz = 0; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/lib.rs:523:14 [INFO] [stderr] | [INFO] [stderr] 523 | for (key, hint) in key_values { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/key_value.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | let mut v = vec![8; 0]; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | let mut bc = self.lc(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: associated function `reopen` is never used [INFO] [stderr] --> src/lib.rs:213:8 [INFO] [stderr] | [INFO] [stderr] 213 | fn reopen(&mut self) -> Result<()> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function `base_name` is never used [INFO] [stderr] --> src/data_file.rs:60:19 [INFO] [stderr] | [INFO] [stderr] 60 | pub(crate) fn base_name(&self) -> String { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `read_all` is never used [INFO] [stderr] --> src/data_file.rs:115:19 [INFO] [stderr] | [INFO] [stderr] 115 | pub(crate) fn read_all(&mut self) -> Result> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `to_vec` is never used [INFO] [stderr] --> src/entry.rs:81:19 [INFO] [stderr] | [INFO] [stderr] 81 | pub(crate) fn to_vec(&self) -> Result> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sure_tmp_dir` is never used [INFO] [stderr] --> src/tests_util.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn sure_tmp_dir(prefix: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `expire_key` is never used [INFO] [stderr] --> src/util.rs:66:15 [INFO] [stderr] | [INFO] [stderr] 66 | pub(crate) fn expire_key() -> impl FnMut(&Entry) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/lib.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | tx.send(()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `bitcask-rs` (lib) generated 84 warnings (run `cargo fix --lib -p bitcask-rs` to apply 67 suggestions) [INFO] [stderr] warning: unused imports: `DataFile`, `Hint`, `Indexer`, `Persisted` [INFO] [stderr] --> src/tests.rs:3:34 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::{BitCask, Config, DataFile, Entry, Hint, Index, Indexer, Persisted}; [INFO] [stderr] | ^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crossbeam_channel::select` [INFO] [stderr] --> src/tests.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | use crossbeam_channel::select; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Target` [INFO] [stderr] --> src/tests.rs:5:27 [INFO] [stderr] | [INFO] [stderr] 5 | use env_logger::{Env, Target}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log_enabled` [INFO] [stderr] --> src/tests.rs:6:28 [INFO] [stderr] | [INFO] [stderr] 6 | use log::{debug, info, log_enabled}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OpenOptions` [INFO] [stderr] --> src/tests.rs:9:35 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fs::{remove_dir_all, OpenOptions}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Cursor` [INFO] [stderr] --> src/tests.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::Cursor; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::Chars` [INFO] [stderr] --> src/tests.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | use std::str::Chars; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AtomicBool`, `Ordering` [INFO] [stderr] --> src/tests.rs:13:29 [INFO] [stderr] | [INFO] [stderr] 13 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::mpsc::channel` [INFO] [stderr] --> src/tests.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | use std::sync::mpsc::channel; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `spawn` [INFO] [stderr] --> src/tests.rs:15:30 [INFO] [stderr] | [INFO] [stderr] 15 | use std::thread::{sleep, spawn}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Instant` [INFO] [stderr] --> src/tests.rs:16:31 [INFO] [stderr] | [INFO] [stderr] 16 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tempdir::TempDir` [INFO] [stderr] --> src/tests.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | use tempdir::TempDir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/tests.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `env_logger::Builder` [INFO] [stderr] --> src/tests.rs:381:13 [INFO] [stderr] | [INFO] [stderr] 381 | use env_logger::Builder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log::LevelFilter` [INFO] [stderr] --> src/tests.rs:382:13 [INFO] [stderr] | [INFO] [stderr] 382 | use log::LevelFilter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/tests.rs:383:13 [INFO] [stderr] | [INFO] [stderr] 383 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/data_file.rs:266:9 [INFO] [stderr] | [INFO] [stderr] 266 | for i in 0..10 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/hint.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | for i in 0..100000 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hint1` is never read [INFO] [stderr] --> src/tests.rs:163:17 [INFO] [stderr] | [INFO] [stderr] 163 | let mut hint1 = HashMap::new(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:167:17 [INFO] [stderr] | [INFO] [stderr] 167 | for i in 1..=n { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hint2` is never read [INFO] [stderr] --> src/tests.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | let mut hint2 = HashMap::new(); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/tests.rs:197:23 [INFO] [stderr] | [INFO] [stderr] 197 | for (key, value) in hint2 { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:221:17 [INFO] [stderr] | [INFO] [stderr] 221 | for i in 1..=1 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:245:13 [INFO] [stderr] | [INFO] [stderr] 245 | for i in 0..num { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num` [INFO] [stderr] --> src/tests.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let num = entries.len(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num` [INFO] [stderr] --> src/tests.rs:279:13 [INFO] [stderr] | [INFO] [stderr] 279 | let num = entries.len(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_num` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:311:13 [INFO] [stderr] | [INFO] [stderr] 311 | for i in 0..num { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:318:13 [INFO] [stderr] | [INFO] [stderr] 318 | for i in 0..20 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/tests.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | for i in 0..50 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `final_entries` [INFO] [stderr] --> src/tests.rs:339:13 [INFO] [stderr] | [INFO] [stderr] 339 | let final_entries = bitcask.lc().entries(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_final_entries` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/tests.rs:358:49 [INFO] [stderr] | [INFO] [stderr] 358 | bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/tests.rs:358:54 [INFO] [stderr] | [INFO] [stderr] 358 | bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/tests.rs:365:49 [INFO] [stderr] | [INFO] [stderr] 365 | bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/tests.rs:365:54 [INFO] [stderr] | [INFO] [stderr] 365 | bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/tests.rs:372:48 [INFO] [stderr] | [INFO] [stderr] 372 | bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/tests.rs:372:53 [INFO] [stderr] | [INFO] [stderr] 372 | bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `entry_sz` is never read [INFO] [stderr] --> src/lib.rs:352:17 [INFO] [stderr] | [INFO] [stderr] 352 | let mut entry_sz = 0; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/data_file.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | let mut entry = Entry::new( [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/key_value.rs:11:13 [INFO] [stderr] | [INFO] [stderr] 11 | let mut v = vec![8; 0]; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | let mut bitcask = generate_n(10000, 3); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | let mut cfg = Config::default().auto_sync(false); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | let mut value = generate_n_sz_buffer(1 << 10); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | let mut cfg = Config::default().auto_sync(false).auto_merge(true); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:188:17 [INFO] [stderr] | [INFO] [stderr] 188 | let mut bitcask = BitCask::open(Path::new(&tmp), cfg).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 275 | let mut timout_n = 103; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | let mut cfg = Config::default().auto_sync(false); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function `filter` is never used [INFO] [stderr] --> src/radix_tree.rs:198:8 [INFO] [stderr] | [INFO] [stderr] 198 | fn filter(v: Vec, f: Option bool>) -> Vec { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `mock2` is never used [INFO] [stderr] --> src/tests.rs:398:8 [INFO] [stderr] | [INFO] [stderr] 398 | fn mock2(prefix: impl Into>, flag: String) -> String { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | bitcask.unwrap().close(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | bitcask.delete(&del_key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:219:17 [INFO] [stderr] | [INFO] [stderr] 219 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:222:17 [INFO] [stderr] | [INFO] [stderr] 222 | bitcask.merge(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:242:13 [INFO] [stderr] | [INFO] [stderr] 242 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | bitcask.delete(&key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:266:9 [INFO] [stderr] | [INFO] [stderr] 266 | bitcask.close(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | bitcask.put_with_ttl(entry.key.clone(), entry.value.clone(), entry.expiry); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | bitcask.close(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:300:9 [INFO] [stderr] | [INFO] [stderr] 300 | remove_dir_all(Path::new(&tmp)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:358:9 [INFO] [stderr] | [INFO] [stderr] 358 | / bitcask.scan("A".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] 359 | | n += 1; [INFO] [stderr] 360 | | Ok(()) [INFO] [stderr] 361 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:365:9 [INFO] [stderr] | [INFO] [stderr] 365 | / bitcask.scan("B".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] 366 | | n += 1; [INFO] [stderr] 367 | | Ok(()) [INFO] [stderr] 368 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:372:9 [INFO] [stderr] | [INFO] [stderr] 372 | / bitcask.scan("".as_bytes().to_vec(), |(key, value)| { [INFO] [stderr] 373 | | n += 1; [INFO] [stderr] 374 | | Ok(()) [INFO] [stderr] 375 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:384:9 [INFO] [stderr] | [INFO] [stderr] 384 | env_logger::try_init_from_env(Env::new().default_filter_or("info")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/tests.rs:405:13 [INFO] [stderr] | [INFO] [stderr] 405 | / builder [INFO] [stderr] 406 | | .format(move |buf, record| { [INFO] [stderr] 407 | | writeln!( [INFO] [stderr] 408 | | buf, [INFO] [stderr] ... | [INFO] [stderr] 418 | | .filter(None, LevelFilter::Debug) [INFO] [stderr] 419 | | .try_init(); [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `bitcask-rs` (lib test) generated 148 warnings (79 duplicates) (run `cargo fix --lib -p bitcask-rs --tests` to apply 48 suggestions) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.30s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bitcask_rs-2416e44333a8b3a1) [INFO] [stdout] [INFO] [stdout] running 22 tests [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] auto merge at backend [INFO] [stdout] test data_file::data_file_core_samples ... ok [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.6CmBtfVq8Fla/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.TxPFJLeVgLsO/bitcask [INFO] [stdout] test hint::hint_decode_encode ... ok [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.R6adBpj9CGhG/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.3bagDwXZGe1L/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.jAA31g8Tdm8G/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] auto merge at backend [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.wXwTZmK7LNWA/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 21 [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] exited succeed [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.jE98fKPPjLrb/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.kK5779bPL9mP/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.B38XHIISwD2e/bitcask [INFO] [stdout] test radix_tree::radix_tree ... ok [INFO] [stdout] test key_value::tests ... ok [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.AJEFZQSaBrLj/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.joB82h2O7wVl/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.xKnOn95MakH8/bitcask [INFO] [stdout] test tests::tests::bitcask ... ok [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.Wut05vdh3Lap/bitcask [INFO] [stdout] test data_file::data_file_write_and_read ... ok [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs::tests::tests] start to recover test [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] auto merge at backend [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.gxMxdiOheP97/bitcask [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:43Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.bEGXAu6sgksX/bitcask [INFO] [stdout] test tests::tests::generate_data ... ok [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] exited succeed [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 25 [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] auto merge at backend [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.gxMxdiOheP97/bitcask [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 27 [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] exited succeed [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] auto merge at backend [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.gxMxdiOheP97/bitcask [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] exited succeed [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 28 [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] ready to open a new db connection [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] auto merge at backend [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] welcome to use bitcask: /tmp/bitcask.gxMxdiOheP97/bitcask [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 29 [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] exited succeed [INFO] [stdout] test tests::tests::recover ... ok [INFO] [stdout] test tests::tests::put_ttl ... ok [INFO] [stdout] test tests::tests::put ... ok [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs::tests::tests] finished put [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] exited succeed [INFO] [stdout] test tests::tests::merge_auto ... ok [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] receive a exit signer, exited merge at backend, tid: 19 [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:44Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000000.data, total: 1024, dirty: 0, cost: 142ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000000.data, total: 1024, dirty: 659, cost: 99ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000000.data, total: 1024, dirty: 0, cost: 132ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000000.data, total: 1024, dirty: 658, cost: 15ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000001.data, total: 1024, dirty: 648, cost: 60ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000001.data, total: 1024, dirty: 0, cost: 163ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000002.data, total: 1024, dirty: 662, cost: 86ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stdout] test tests::tests::merge_with_delete ... ok [INFO] [stdout] test tests::tests::merge1 ... ok [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove current file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000010.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000003.data, total: 1024, dirty: 633, cost: 81ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000002.data, total: 1024, dirty: 0, cost: 98ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000003.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000004.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000006.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000005.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000002.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000000.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000009.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000001.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000007.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove data_file: /tmp/bitcask.R6adBpj9CGhG/bitcask/0000000008.data [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove hint file: /tmp/bitcask.R6adBpj9CGhG/bitcask/hint_index [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] remove metadata file: /tmp/bitcask.R6adBpj9CGhG/bitcask/metadata.toml [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000004.data, total: 1024, dirty: 618, cost: 72ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000005.data, total: 1024, dirty: 643, cost: 26ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000003.data, total: 1024, dirty: 0, cost: 102ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000006.data, total: 1024, dirty: 662, cost: 41ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stdout] test tests::tests::get_and_delete ... ok [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000007.data, total: 1024, dirty: 634, cost: 26ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000008.data, total: 1024, dirty: 646, cost: 28ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000004.data, total: 1024, dirty: 0, cost: 82ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000009.data, total: 1024, dirty: 674, cost: 18ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000005.data, total: 1024, dirty: 0, cost: 47ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000010.data, total: 684, dirty: 0, cost: 30ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000006.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000011.data, total: 1024, dirty: 0, cost: 85ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000007.data, total: 1024, dirty: 0, cost: 131ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stdout] test tests::tests::scan ... ok [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000012.data, total: 1024, dirty: 0, cost: 73ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000008.data, total: 1024, dirty: 0, cost: 35ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000013.data, total: 1024, dirty: 0, cost: 33ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000009.data, total: 1024, dirty: 0, cost: 77ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stdout] test tests::tests::delete_all ... ok [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] merge stats, 0000000014.data, total: 1024, dirty: 0, cost: 78ms [INFO] [stderr] [2023-01-22T02:41:45Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000010.data, total: 1024, dirty: 0, cost: 72ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000015.data, total: 1024, dirty: 0, cost: 68ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000011.data, total: 1024, dirty: 0, cost: 34ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000016.data, total: 1024, dirty: 0, cost: 47ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000012.data, total: 1024, dirty: 0, cost: 43ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000017.data, total: 1024, dirty: 0, cost: 53ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000013.data, total: 1024, dirty: 0, cost: 72ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000018.data, total: 1024, dirty: 0, cost: 53ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000014.data, total: 1024, dirty: 0, cost: 53ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000019.data, total: 1024, dirty: 0, cost: 67ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000015.data, total: 1024, dirty: 0, cost: 51ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stdout] test tests::tests::merge_random ... ok [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000016.data, total: 1024, dirty: 0, cost: 40ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000017.data, total: 1024, dirty: 0, cost: 29ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000018.data, total: 1024, dirty: 0, cost: 29ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000019.data, total: 1024, dirty: 0, cost: 28ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000020.data, total: 1024, dirty: 0, cost: 31ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000021.data, total: 1024, dirty: 0, cost: 33ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000022.data, total: 1024, dirty: 0, cost: 41ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000023.data, total: 1024, dirty: 0, cost: 78ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000024.data, total: 1024, dirty: 0, cost: 35ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000025.data, total: 1024, dirty: 0, cost: 44ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000026.data, total: 1024, dirty: 0, cost: 46ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000027.data, total: 1024, dirty: 0, cost: 35ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000028.data, total: 1024, dirty: 0, cost: 40ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] merge stats, 0000000029.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:46Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000030.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000031.data, total: 1024, dirty: 0, cost: 46ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000032.data, total: 1024, dirty: 0, cost: 39ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000033.data, total: 1024, dirty: 0, cost: 36ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000034.data, total: 1024, dirty: 0, cost: 39ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000035.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000036.data, total: 1024, dirty: 0, cost: 43ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000037.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000038.data, total: 1024, dirty: 0, cost: 36ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000039.data, total: 1024, dirty: 0, cost: 40ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000040.data, total: 1024, dirty: 0, cost: 34ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000041.data, total: 1024, dirty: 0, cost: 211ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000042.data, total: 1024, dirty: 0, cost: 42ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000043.data, total: 1024, dirty: 0, cost: 29ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000044.data, total: 1024, dirty: 0, cost: 40ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000045.data, total: 1024, dirty: 0, cost: 27ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000046.data, total: 1024, dirty: 0, cost: 43ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000047.data, total: 1024, dirty: 0, cost: 32ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] merge stats, 0000000048.data, total: 1024, dirty: 0, cost: 30ms [INFO] [stderr] [2023-01-22T02:41:47Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:48Z INFO bitcask_rs] merge stats, 0000000049.data, total: 1024, dirty: 0, cost: 379ms [INFO] [stdout] test tests::tests::merge_recycle ... ok [INFO] [stdout] test tests::tests::exists ... ok [INFO] [stdout] test tests::tests::rate ... ok [INFO] [stderr] [2023-01-22T02:41:50Z INFO bitcask_rs] start to merge process [INFO] [stderr] [2023-01-22T02:41:50Z INFO bitcask_rs] merge stats, 0000000000.data, total: 1024, dirty: 103, cost: 29ms [INFO] [stderr] [2023-01-22T02:41:50Z INFO bitcask_rs] wait merge job exit [INFO] [stderr] [2023-01-22T02:41:50Z INFO bitcask_rs] exited succeed [INFO] [stdout] test tests::tests::merge_timout_hint ... ok [INFO] [stdout] test radix_tree::random_radix_tree ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.15s [INFO] [stdout] [INFO] [stderr] Doc-tests bitcask-rs [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "97490b353d6f1dc82c5f8826544973aa2dbb598f4cdc9c8c62d44facfb828cd6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "97490b353d6f1dc82c5f8826544973aa2dbb598f4cdc9c8c62d44facfb828cd6", kill_on_drop: false }` [INFO] [stdout] 97490b353d6f1dc82c5f8826544973aa2dbb598f4cdc9c8c62d44facfb828cd6