[INFO] cloning repository https://github.com/rong9490/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/rong9490/bitcask-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frong9490%2Fbitcask-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frong9490%2Fbitcask-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 92aa9ae788c211e4ff71b36abdae85855e3fd584 [INFO] checking rong9490/bitcask-rs against try#ddcf048784667508cd676fef4667f88ae15628a3 for pr-148271 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frong9490%2Fbitcask-rs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rong9490/bitcask-rs [INFO] finished tweaking git repo https://github.com/rong9490/bitcask-rs [INFO] tweaked toml for git repo https://github.com/rong9490/bitcask-rs written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rong9490/bitcask-rs on toolchain ddcf048784667508cd676fef4667f88ae15628a3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rong9490/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" "+ddcf048784667508cd676fef4667f88ae15628a3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: /workspace/builds/worker-2-tc2/source/Cargo.toml: unused manifest key: workspace.edition [INFO] [stderr] warning: /workspace/builds/worker-2-tc2/source/Cargo.toml: unused manifest key: workspace.name [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded jammdb v0.11.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 402efcc8aa3797bbf31523c3b2782f03a0ad831ce57b65cd02bce8a4948b2958 [INFO] running `Command { std: "docker" "start" "-a" "402efcc8aa3797bbf31523c3b2782f03a0ad831ce57b65cd02bce8a4948b2958", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "402efcc8aa3797bbf31523c3b2782f03a0ad831ce57b65cd02bce8a4948b2958", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "402efcc8aa3797bbf31523c3b2782f03a0ad831ce57b65cd02bce8a4948b2958", kill_on_drop: false }` [INFO] [stdout] 402efcc8aa3797bbf31523c3b2782f03a0ad831ce57b65cd02bce8a4948b2958 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ddcf048784667508cd676fef4667f88ae15628a3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5bb3662a222db5299b55d4e5c8499d78eecf9693a444c771b6331d965810e976 [INFO] running `Command { std: "docker" "start" "-a" "5bb3662a222db5299b55d4e5c8499d78eecf9693a444c771b6331d965810e976", kill_on_drop: false }` [INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.edition [INFO] [stderr] warning: /opt/rustwide/workdir/Cargo.toml: unused manifest key: workspace.name [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Checking bumpalo v3.19.0 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Checking memmap2 v0.9.8 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking page_size v0.6.0 [INFO] [stderr] Checking fs2 v0.4.3 [INFO] [stderr] Checking fs_extra v1.3.0 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking crossbeam-skiplist v0.1.3 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking sha3 v0.10.8 [INFO] [stderr] Checking fs4 v0.7.0 [INFO] [stderr] Checking jammdb v0.11.0 [INFO] [stderr] Compiling prost-derive v0.14.1 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Checking prost v0.14.1 [INFO] [stderr] Checking bitcask v0.1.0 (/opt/rustwide/workdir/bitcask) [INFO] [stdout] error[E0432]: unresolved imports `crate::batch::parse_log_record_key`, `crate::batch::NON_TRANSACTION_SEQ_NO`, `crate::data::log_record`, `crate::db::Engine`, `crate::db::FILE_LOCK_NAME`, `crate::options::IOType`, `crate::options::Options`, `crate::util` [INFO] [stdout] --> bitcask/src/merge/mod.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | batch::{utils, parse_log_record_key, NON_TRANSACTION_SEQ_NO}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ no `NON_TRANSACTION_SEQ_NO` in `batch` [INFO] [stdout] | | [INFO] [stdout] | no `parse_log_record_key` in `batch` [INFO] [stdout] 15 | data::{ [INFO] [stdout] 16 | log_record::{decode_log_record_pos, LogRecordType}, [INFO] [stdout] | ^^^^^^^^^^ could not find `log_record` in `data` [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | db::{Engine, FILE_LOCK_NAME}, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ no `FILE_LOCK_NAME` in `db` [INFO] [stdout] | | [INFO] [stdout] | no `Engine` in `db` [INFO] [stdout] 19 | options::{IOType, Options}, [INFO] [stdout] | ^^^^^^ ^^^^^^^ no `Options` in `options` [INFO] [stdout] | | [INFO] [stdout] | no `IOType` in `options` [INFO] [stdout] 20 | util, [INFO] [stdout] | ^^^^ no `util` in the root [INFO] [stdout] | [INFO] [stdout] = help: consider importing this struct instead: [INFO] [stdout] crate::db::engine::Engine [INFO] [stdout] = help: consider importing this enum instead: [INFO] [stdout] crate::options::io_type::IOType [INFO] [stdout] = help: consider importing this struct instead: [INFO] [stdout] crate::options::options::Options [INFO] [stdout] help: a similar name exists in the module [INFO] [stdout] | [INFO] [stdout] 18 - db::{Engine, FILE_LOCK_NAME}, [INFO] [stdout] 18 + db::{engine, FILE_LOCK_NAME}, [INFO] [stdout] | [INFO] [stdout] help: a similar name exists in the module (notice the capitalization) [INFO] [stdout] | [INFO] [stdout] 19 - options::{IOType, Options}, [INFO] [stdout] 19 + options::{IOType, options}, [INFO] [stdout] | [INFO] [stdout] help: a similar name exists in the module [INFO] [stdout] | [INFO] [stdout] 20 | utils, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find macro `warn` in this scope [INFO] [stdout] --> bitcask/src/db/engine.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | warn!("create database directory err: {}", e); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `warn` is in scope, but it is an attribute: `#[warn]` [INFO] [stdout] help: consider importing this macro [INFO] [stdout] | [INFO] [stdout] 1 + use log::warn; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log_record_key_with_seq` in this scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | ... log_record_key_with_seq(real_key.clone(), NON_TRANSACTION_SEQ_NO); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] note: function `crate::batch::utils::log_record_key_with_seq` exists but is inaccessible [INFO] [stdout] --> bitcask/src/batch/utils.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub(crate) fn log_record_key_with_seq(key: Vec, seq_no: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `IndexType` [INFO] [stdout] --> bitcask/src/db/engine.rs:122:41 [INFO] [stdout] | [INFO] [stdout] 122 | if engine.options.index_type != IndexType::BPlusTree { [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `IndexType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::options::index_type::IndexType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Ordering` [INFO] [stdout] --> bitcask/src/db/engine.rs:131:57 [INFO] [stdout] | [INFO] [stdout] 131 | engine.seq_no.store(current_seq_no + 1, Ordering::SeqCst); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `Ordering` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these enums [INFO] [stdout] | [INFO] [stdout] 1 + use std::cmp::Ordering; [INFO] [stdout] | [INFO] [stdout] 1 + use std::sync::atomic::Ordering; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `IndexType` [INFO] [stdout] --> bitcask/src/db/engine.rs:140:41 [INFO] [stdout] | [INFO] [stdout] 140 | if engine.options.index_type == IndexType::BPlusTree { [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `IndexType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::options::index_type::IndexType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Ordering` [INFO] [stdout] --> bitcask/src/db/engine.rs:144:45 [INFO] [stdout] | [INFO] [stdout] 144 | engine.seq_no.store(seq_no, Ordering::SeqCst); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `Ordering` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these enums [INFO] [stdout] | [INFO] [stdout] 1 + use std::cmp::Ordering; [INFO] [stdout] | [INFO] [stdout] 1 + use std::sync::atomic::Ordering; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: module `utils` is private [INFO] [stdout] --> bitcask/src/merge/mod.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | batch::{utils, parse_log_record_key, NON_TRANSACTION_SEQ_NO}, [INFO] [stdout] | ^^^^^ private module [INFO] [stdout] | [INFO] [stdout] note: the module `utils` is defined here [INFO] [stdout] --> bitcask/src/batch/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod utils; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::index` [INFO] [stdout] --> bitcask/src/db/engine.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::index; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BytesMut` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::options::index_type::IndexType` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::options::index_type::IndexType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parse_log_record_key` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | use super::utils::{log_record_key_with_seq, parse_log_record_key}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: could not find `util` in the crate root [INFO] [stdout] --> bitcask/src/merge/mod.rs:291:16 [INFO] [stdout] | [INFO] [stdout] 291 | use crate::util::rand_kv::{get_test_key, get_test_value}; [INFO] [stdout] | ^^^^ could not find `util` in the crate root [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved imports `crate::batch::parse_log_record_key`, `crate::batch::NON_TRANSACTION_SEQ_NO`, `crate::data::log_record`, `crate::db::Engine`, `crate::db::FILE_LOCK_NAME`, `crate::options::IOType`, `crate::options::Options`, `crate::util` [INFO] [stdout] --> bitcask/src/merge/mod.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | batch::{utils, parse_log_record_key, NON_TRANSACTION_SEQ_NO}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ no `NON_TRANSACTION_SEQ_NO` in `batch` [INFO] [stdout] | | [INFO] [stdout] | no `parse_log_record_key` in `batch` [INFO] [stdout] 15 | data::{ [INFO] [stdout] 16 | log_record::{decode_log_record_pos, LogRecordType}, [INFO] [stdout] | ^^^^^^^^^^ could not find `log_record` in `data` [INFO] [stdout] 17 | }, [INFO] [stdout] 18 | db::{Engine, FILE_LOCK_NAME}, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ no `FILE_LOCK_NAME` in `db` [INFO] [stdout] | | [INFO] [stdout] | no `Engine` in `db` [INFO] [stdout] 19 | options::{IOType, Options}, [INFO] [stdout] | ^^^^^^ ^^^^^^^ no `Options` in `options` [INFO] [stdout] | | [INFO] [stdout] | no `IOType` in `options` [INFO] [stdout] 20 | util, [INFO] [stdout] | ^^^^ no `util` in the root [INFO] [stdout] | [INFO] [stdout] = help: consider importing this struct instead: [INFO] [stdout] crate::db::engine::Engine [INFO] [stdout] = help: consider importing this enum instead: [INFO] [stdout] crate::options::io_type::IOType [INFO] [stdout] = help: consider importing this struct instead: [INFO] [stdout] crate::options::options::Options [INFO] [stdout] help: a similar name exists in the module [INFO] [stdout] | [INFO] [stdout] 18 - db::{Engine, FILE_LOCK_NAME}, [INFO] [stdout] 18 + db::{engine, FILE_LOCK_NAME}, [INFO] [stdout] | [INFO] [stdout] help: a similar name exists in the module (notice the capitalization) [INFO] [stdout] | [INFO] [stdout] 19 - options::{IOType, Options}, [INFO] [stdout] 19 + options::{IOType, options}, [INFO] [stdout] | [INFO] [stdout] help: a similar name exists in the module [INFO] [stdout] | [INFO] [stdout] 20 | utils, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find macro `warn` in this scope [INFO] [stdout] --> bitcask/src/db/engine.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | warn!("create database directory err: {}", e); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `warn` is in scope, but it is an attribute: `#[warn]` [INFO] [stdout] help: consider importing this macro [INFO] [stdout] | [INFO] [stdout] 1 + use log::warn; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `log_record_key_with_seq` in this scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:97:29 [INFO] [stdout] | [INFO] [stdout] 97 | ... log_record_key_with_seq(real_key.clone(), NON_TRANSACTION_SEQ_NO); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] note: function `crate::batch::utils::log_record_key_with_seq` exists but is inaccessible [INFO] [stdout] --> bitcask/src/batch/utils.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub(crate) fn log_record_key_with_seq(key: Vec, seq_no: usize) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `IndexType` [INFO] [stdout] --> bitcask/src/db/engine.rs:122:41 [INFO] [stdout] | [INFO] [stdout] 122 | if engine.options.index_type != IndexType::BPlusTree { [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `IndexType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::options::index_type::IndexType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Ordering` [INFO] [stdout] --> bitcask/src/db/engine.rs:131:57 [INFO] [stdout] | [INFO] [stdout] 131 | engine.seq_no.store(current_seq_no + 1, Ordering::SeqCst); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `Ordering` [INFO] [stdout] | [INFO] [stdout] = note: enum `crate::merge::tests::Ordering` exists but is inaccessible [INFO] [stdout] help: consider importing one of these enums [INFO] [stdout] | [INFO] [stdout] 1 + use std::cmp::Ordering; [INFO] [stdout] | [INFO] [stdout] 1 + use std::sync::atomic::Ordering; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `IndexType` [INFO] [stdout] --> bitcask/src/db/engine.rs:140:41 [INFO] [stdout] | [INFO] [stdout] 140 | if engine.options.index_type == IndexType::BPlusTree { [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `IndexType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 1 + use crate::options::index_type::IndexType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Ordering` [INFO] [stdout] --> bitcask/src/db/engine.rs:144:45 [INFO] [stdout] | [INFO] [stdout] 144 | engine.seq_no.store(seq_no, Ordering::SeqCst); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `Ordering` [INFO] [stdout] | [INFO] [stdout] = note: enum `crate::merge::tests::Ordering` exists but is inaccessible [INFO] [stdout] help: consider importing one of these enums [INFO] [stdout] | [INFO] [stdout] 1 + use std::cmp::Ordering; [INFO] [stdout] | [INFO] [stdout] 1 + use std::sync::atomic::Ordering; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: module `utils` is private [INFO] [stdout] --> bitcask/src/merge/mod.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | batch::{utils, parse_log_record_key, NON_TRANSACTION_SEQ_NO}, [INFO] [stdout] | ^^^^^ private module [INFO] [stdout] | [INFO] [stdout] note: the module `utils` is defined here [INFO] [stdout] --> bitcask/src/batch/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | mod utils; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::index` [INFO] [stdout] --> bitcask/src/db/engine.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::index; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BytesMut` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::options::index_type::IndexType` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::options::index_type::IndexType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parse_log_record_key` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | use super::utils::{log_record_key_with_seq, parse_log_record_key}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:80:62 [INFO] [stdout] | [INFO] [stdout] 80 | let (mut log_record, size) = match data_file.read_log_record(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> bitcask/src/merge/mod.rs:92:57 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(index_pos) = self.index.get(real_key.clone()) { [INFO] [stdout] | ^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:94:55 [INFO] [stdout] | [INFO] [stdout] 94 | if index_pos.file_id == data_file.get_file_id() && index_pos.offset == offset { [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for struct `Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:98:55 [INFO] [stdout] | [INFO] [stdout] 98 | let log_record_pos = merge_db.append_log_record(&mut log_record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `append_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `write_hint_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:100:35 [INFO] [stdout] | [INFO] [stdout] 100 | hint_file.write_hint_record(real_key.clone(), log_record_pos)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `write_hint_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:108:18 [INFO] [stdout] | [INFO] [stdout] 108 | merge_db.sync()?; [INFO] [stdout] | ^^^^ method not found in `Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:109:19 [INFO] [stdout] | [INFO] [stdout] 109 | hint_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:112:61 [INFO] [stdout] | [INFO] [stdout] 112 | let non_merge_file_id = merge_files.last().unwrap().get_file_id() + 1; [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `write` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:120:24 [INFO] [stdout] | [INFO] [stdout] 120 | merge_fin_file.write(&enc_record)?; [INFO] [stdout] | ^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `write` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `write`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `IOManager` [INFO] [stdout] candidate #2: `std::hash::Hasher` [INFO] [stdout] candidate #3: `std::io::Write` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:121:24 [INFO] [stdout] | [INFO] [stdout] 121 | merge_fin_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:80:62 [INFO] [stdout] | [INFO] [stdout] 80 | let (mut log_record, size) = match data_file.read_log_record(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> bitcask/src/merge/mod.rs:92:57 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(index_pos) = self.index.get(real_key.clone()) { [INFO] [stdout] | ^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_write_off` found for struct `parking_lot::lock_api::RwLockReadGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:129:21 [INFO] [stdout] | [INFO] [stdout] 129 | active_file.get_write_off() == 0 && older_files.len() == 0 [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockReadGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:94:55 [INFO] [stdout] | [INFO] [stdout] 94 | if index_pos.file_id == data_file.get_file_id() && index_pos.offset == offset { [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:143:21 [INFO] [stdout] | [INFO] [stdout] 143 | active_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:98:55 [INFO] [stdout] | [INFO] [stdout] 98 | let log_record_pos = merge_db.append_log_record(&mut log_record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `append_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:144:42 [INFO] [stdout] | [INFO] [stdout] 144 | let active_file_id = active_file.get_file_id(); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `write_hint_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:100:35 [INFO] [stdout] | [INFO] [stdout] 100 | hint_file.write_hint_record(real_key.clone(), log_record_pos)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `write_hint_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:186:54 [INFO] [stdout] | [INFO] [stdout] 186 | let (log_record, size) = match hint_file.read_log_record(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `read_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:108:18 [INFO] [stdout] | [INFO] [stdout] 108 | merge_db.sync()?; [INFO] [stdout] | ^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `io_manager::IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:264:43 [INFO] [stdout] | [INFO] [stdout] 264 | let merge_fin_record = merge_fin_file.read_log_record(0)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `read_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:109:19 [INFO] [stdout] | [INFO] [stdout] 109 | hint_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `io_manager::IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:112:61 [INFO] [stdout] | [INFO] [stdout] 112 | let non_merge_file_id = merge_files.last().unwrap().get_file_id() + 1; [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `try_lock_exclusive` found for struct `File` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:66:35 [INFO] [stdout] | [INFO] [stdout] 66 | if let Err(_) = lock_file.try_lock_exclusive() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ method not found in `File` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is in scope [INFO] [stdout] help: the following traits which provide `try_lock_exclusive` are implemented but not in scope; perhaps you want to import one of them [INFO] [stdout] | [INFO] [stdout] 1 + use fs2::FileExt; [INFO] [stdout] | [INFO] [stdout] 1 + use fs4::file_ext::sync_impl::FileExt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | file_ids.push(v.get_file_id()); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `write` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:120:24 [INFO] [stdout] | [INFO] [stdout] 120 | merge_fin_file.write(&enc_record)?; [INFO] [stdout] | ^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `write` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `write`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `io_manager::IOManager` [INFO] [stdout] candidate #2: `std::hash::Hasher` [INFO] [stdout] candidate #3: `std::io::Write` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:94:41 [INFO] [stdout] | [INFO] [stdout] 94 | older_files.insert(file.get_file_id(), file); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `get_file_id` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `new_indexer` in this scope [INFO] [stdout] --> bitcask/src/db/engine.rs:109:20 [INFO] [stdout] | [INFO] [stdout] 109 | index: new_indexer(options.index_type, options.dir_path), [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:121:24 [INFO] [stdout] | [INFO] [stdout] 121 | merge_fin_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `sync` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `io_manager::IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_write_off` found for struct `parking_lot::lock_api::RwLockReadGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:129:21 [INFO] [stdout] | [INFO] [stdout] 129 | active_file.get_write_off() == 0 && older_files.len() == 0 [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockReadGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `load_index_from_data_files` found for struct `Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:127:41 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `load_index_from_data_files` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 127 | let current_seq_no = engine.load_index_from_data_files()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `load_index_from_hint_file` with a similar name [INFO] [stdout] | [INFO] [stdout] 127 - let current_seq_no = engine.load_index_from_data_files()?; [INFO] [stdout] 127 + let current_seq_no = engine.load_index_from_hint_file()?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:143:21 [INFO] [stdout] | [INFO] [stdout] 143 | active_file.sync()?; [INFO] [stdout] | ^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `io_manager::IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `reset_io_type` found for struct `Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `reset_io_type` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 136 | engine.reset_io_type(); [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `load_seq_no` found for struct `Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:142:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `load_seq_no` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 142 | let (exists, seq_no) = engine.load_seq_no(); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:144:42 [INFO] [stdout] | [INFO] [stdout] 144 | let active_file_id = active_file.get_file_id(); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `set_write_off` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:150:25 [INFO] [stdout] | [INFO] [stdout] 150 | active_file.set_write_off(active_file.file_size()); [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:186:54 [INFO] [stdout] | [INFO] [stdout] 186 | let (log_record, size) = match hint_file.read_log_record(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `read_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `file_size` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:150:51 [INFO] [stdout] | [INFO] [stdout] 150 | active_file.set_write_off(active_file.file_size()); [INFO] [stdout] | ^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `read_log_record` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:264:43 [INFO] [stdout] | [INFO] [stdout] 264 | let merge_fin_record = merge_fin_file.read_log_record(0)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `read_log_record` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for reference `&Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | let pos = self.engine.append_log_record(&mut record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:320:34 [INFO] [stdout] | [INFO] [stdout] 320 | let put_res = engine.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 320 | let put_res = engine.index.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `list_keys` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:331:28 [INFO] [stdout] | [INFO] [stdout] 331 | let keys = engine2.list_keys().unwrap(); [INFO] [stdout] | ^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `list_keys` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `list_keys`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 331 | let keys = engine2.index.list_keys().unwrap(); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for reference `&Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | self.engine.append_log_record(&mut finish_record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for reference `&Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:111:25 [INFO] [stdout] | [INFO] [stdout] 111 | self.engine.sync()?; [INFO] [stdout] | ^^^^ method not found in `&Engine` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:335:35 [INFO] [stdout] | [INFO] [stdout] 335 | let get_res = engine2.get(get_test_key(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `get` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `get`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `SliceIndex` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 335 | let get_res = engine2.index.get(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:353:34 [INFO] [stdout] | [INFO] [stdout] 353 | let put_res = engine.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 353 | let put_res = engine.index.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> bitcask/src/batch/mod.rs:24:38 [INFO] [stdout] | [INFO] [stdout] 24 | pending_writes: Arc::new(Mutex::new(HashMap::new())), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Mutex, ...>>`, found `Mutex>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `std::sync::Mutex>` and `Mutex, ...>>` have similar names, but are actually distinct types [INFO] [stdout] note: `std::sync::Mutex>` is defined in crate `std` [INFO] [stdout] --> /rustc/ddcf048784667508cd676fef4667f88ae15628a3/library/std/src/sync/poison/mutex.rs:227:1 [INFO] [stdout] note: `Mutex, ...>>` is defined in crate `lock_api` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.13/src/mutex.rs:138:1 [INFO] [stdout] | [INFO] [stdout] 138 | pub struct Mutex { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /rustc/ddcf048784667508cd676fef4667f88ae15628a3/library/alloc/src/sync.rs:417:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:357:34 [INFO] [stdout] | [INFO] [stdout] 357 | let put_res = engine.put(get_test_key(i), Bytes::from("new value in merge")); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 357 | let put_res = engine.index.put(get_test_key(i), Bytes::from("new value in merge")); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `delete` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:361:34 [INFO] [stdout] | [INFO] [stdout] 361 | let del_res = engine.delete(get_test_key(i)); [INFO] [stdout] | ^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `delete` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `delete`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 361 | let del_res = engine.index.delete(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `list_keys` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:372:28 [INFO] [stdout] | [INFO] [stdout] 372 | let keys = engine2.list_keys().unwrap(); [INFO] [stdout] | ^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `list_keys` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `list_keys`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 372 | let keys = engine2.index.list_keys().unwrap(); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:376:35 [INFO] [stdout] | [INFO] [stdout] 376 | let get_res = engine2.get(get_test_key(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `get` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `get`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `SliceIndex` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 376 | let get_res = engine2.index.get(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:394:34 [INFO] [stdout] | [INFO] [stdout] 394 | let put_res = engine.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 394 | let put_res = engine.index.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `delete` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:396:34 [INFO] [stdout] | [INFO] [stdout] 396 | let del_res = engine.delete(get_test_key(i)); [INFO] [stdout] | ^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `delete` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `delete`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 396 | let del_res = engine.index.delete(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `list_keys` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:407:28 [INFO] [stdout] | [INFO] [stdout] 407 | let keys = engine2.list_keys().unwrap(); [INFO] [stdout] | ^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `list_keys` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `list_keys`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 407 | let keys = engine2.index.list_keys().unwrap(); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:411:35 [INFO] [stdout] | [INFO] [stdout] 411 | let get_res = engine2.get(get_test_key(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `get` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `get`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `SliceIndex` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 411 | let get_res = engine2.index.get(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:429:34 [INFO] [stdout] | [INFO] [stdout] 429 | let put_res = engine.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 429 | let put_res = engine.index.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0282, E0308, E0425, E0432, E0433, E0599, E0603. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0282`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:433:34 [INFO] [stdout] | [INFO] [stdout] 433 | let put_res = engine.put(get_test_key(i), Bytes::from("new value in merge")); [INFO] [stdout] | ^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `put` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 433 | let put_res = engine.index.put(get_test_key(i), Bytes::from("new value in merge")); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `delete` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:437:34 [INFO] [stdout] | [INFO] [stdout] 437 | let del_res = engine.delete(get_test_key(i)); [INFO] [stdout] | ^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `delete` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `delete`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 437 | let del_res = engine.index.delete(get_test_key(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `put` found for struct `Arc` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:447:36 [INFO] [stdout] | [INFO] [stdout] 447 | let put_res = eng1.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ^^^ method not found in `Arc` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following traits define an item `put`, perhaps you need to implement one of them: [INFO] [stdout] candidate #1: `indexer::Indexer` [INFO] [stdout] candidate #2: `BufMut` [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 447 | let put_res = eng1.index.put(get_test_key(i), get_test_value(i)); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `list_keys` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/merge/mod.rs:467:28 [INFO] [stdout] | [INFO] [stdout] 467 | let keys = engine2.list_keys().unwrap(); [INFO] [stdout] | ^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/db/engine.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `list_keys` not found for this struct [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `indexer::Indexer` defines an item `list_keys`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/index/indexer.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait Indexer: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: one of the expressions' fields has a method of the same name [INFO] [stdout] | [INFO] [stdout] 467 | let keys = engine2.index.list_keys().unwrap(); [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `try_lock_exclusive` found for struct `File` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:66:35 [INFO] [stdout] | [INFO] [stdout] 66 | if let Err(_) = lock_file.try_lock_exclusive() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ method not found in `File` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is in scope [INFO] [stdout] help: the following traits which provide `try_lock_exclusive` are implemented but not in scope; perhaps you want to import one of them [INFO] [stdout] | [INFO] [stdout] 1 + use fs2::FileExt; [INFO] [stdout] | [INFO] [stdout] 1 + use fs4::file_ext::sync_impl::FileExt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `bitcask` (lib) due to 36 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: no method named `get_file_id` found for reference `&DataFile` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | file_ids.push(v.get_file_id()); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `&DataFile` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `get_file_id` found for struct `DataFile` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:94:41 [INFO] [stdout] | [INFO] [stdout] 94 | older_files.insert(file.get_file_id(), file); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `DataFile` [INFO] [stdout] | [INFO] [stdout] ::: bitcask/src/data/data_files_mod/data_file.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct DataFile { [INFO] [stdout] | ------------------- method `get_file_id` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `new_indexer` in this scope [INFO] [stdout] --> bitcask/src/db/engine.rs:109:20 [INFO] [stdout] | [INFO] [stdout] 109 | index: new_indexer(options.index_type, options.dir_path), [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `load_index_from_data_files` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:127:41 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `load_index_from_data_files` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 127 | let current_seq_no = engine.load_index_from_data_files()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: there is a method `load_index_from_hint_file` with a similar name [INFO] [stdout] | [INFO] [stdout] 127 - let current_seq_no = engine.load_index_from_data_files()?; [INFO] [stdout] 127 + let current_seq_no = engine.load_index_from_hint_file()?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `reset_io_type` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `reset_io_type` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 136 | engine.reset_io_type(); [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `load_seq_no` found for struct `db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:142:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Engine { [INFO] [stdout] | ----------------- method `load_seq_no` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 142 | let (exists, seq_no) = engine.load_seq_no(); [INFO] [stdout] | ^^^^^^^^^^^ method not found in `db::engine::Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `set_write_off` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:150:25 [INFO] [stdout] | [INFO] [stdout] 150 | active_file.set_write_off(active_file.file_size()); [INFO] [stdout] | ^^^^^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `file_size` found for struct `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` in the current scope [INFO] [stdout] --> bitcask/src/db/engine.rs:150:51 [INFO] [stdout] | [INFO] [stdout] 150 | active_file.set_write_off(active_file.file_size()); [INFO] [stdout] | ^^^^^^^^^ method not found in `parking_lot::lock_api::RwLockWriteGuard<'_, parking_lot::RawRwLock, DataFile>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for reference `&db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | let pos = self.engine.append_log_record(&mut record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&db::engine::Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `append_log_record` found for reference `&db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | self.engine.append_log_record(&mut finish_record)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ method not found in `&db::engine::Engine` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `sync` found for reference `&db::engine::Engine` in the current scope [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:111:25 [INFO] [stdout] | [INFO] [stdout] 111 | self.engine.sync()?; [INFO] [stdout] | ^^^^ method not found in `&db::engine::Engine` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `io_manager::IOManager` defines an item `sync`, perhaps you need to implement it [INFO] [stdout] --> bitcask/src/fio/io_manager.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait IOManager: Sync + Send { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> bitcask/src/batch/mod.rs:24:38 [INFO] [stdout] | [INFO] [stdout] 24 | pending_writes: Arc::new(Mutex::new(HashMap::new())), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Mutex, ...>>`, found `Mutex>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `std::sync::Mutex>` and `Mutex, ...>>` have similar names, but are actually distinct types [INFO] [stdout] note: `std::sync::Mutex>` is defined in crate `std` [INFO] [stdout] --> /rustc/ddcf048784667508cd676fef4667f88ae15628a3/library/std/src/sync/poison/mutex.rs:227:1 [INFO] [stdout] note: `Mutex, ...>>` is defined in crate `lock_api` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.13/src/mutex.rs:138:1 [INFO] [stdout] | [INFO] [stdout] 138 | pub struct Mutex { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> /rustc/ddcf048784667508cd676fef4667f88ae15628a3/library/alloc/src/sync.rs:417:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufMut` [INFO] [stdout] --> bitcask/src/batch/write_batch.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0282, E0308, E0425, E0432, E0433, E0599, E0603. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0282`. [INFO] [stdout] [INFO] [stderr] error: could not compile `bitcask` (lib test) due to 54 previous errors; 5 warnings emitted [INFO] running `Command { std: "docker" "inspect" "5bb3662a222db5299b55d4e5c8499d78eecf9693a444c771b6331d965810e976", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5bb3662a222db5299b55d4e5c8499d78eecf9693a444c771b6331d965810e976", kill_on_drop: false }` [INFO] [stdout] 5bb3662a222db5299b55d4e5c8499d78eecf9693a444c771b6331d965810e976