madsys-dev / Falcon

Falcon: Fast OLTP Engine for Persistent Cache and Non-Volatile Memory
MIT License
10 stars 0 forks source link

Error: [NVM MGR] failed to open nvm file #1

Open polar1shu opened 8 months ago

polar1shu commented 8 months ago

When I ran this project, I found the project report the error. I use the root account, and run sh ycsb.sh.

Caused by: process didn't exit successfully: /home/xx/Falcon/target/release/deps/n2db-d18d0518254f145d ycsb_test_sync --nocapture (exit status: 255)

jzc15 commented 8 months ago

There are 3 NVM files here, NBTree, Dash and Falcon, which NVM file can not open and is the path correct?

polar1shu commented 8 months ago

After I run ycsb.sh with root, it shows: running 1 test creating a new pool pool opened at: 0x5f0000000000 /mnt/pmem0/pmem_btree.data [NVM MGR] failed to open nvm file error: test failed, to rerun pass --lib

The path is correct since it has the pmem_hash.data file.

jzc15 commented 8 months ago

It seems to be a problem with NBTree. It may be necessary to create the file in advance.

I don't have an experimental environment at the moment and I'll try it later. You can use "printf("errno=%d\n",errno);" on NBTree/tree/src/btree.cpp line 52 for more detail

polar1shu commented 8 months ago

When I create the file in advance, I can open the file. However, I still run this project. Seems to be a problem with NBtree. The problem is following: thread 'main' panicked at 'called Result::unwrap() on an Err value: IO(Os { code: 21, kind: IsADirectory, message: "Is a directory" })', src/storage/nvm_file.rs:96:62 stack backtrace: 0: rust_begin_unwind at /rustc/d9c13cd4531649c2028a8384cb4d4e54f985380e/library/std/src/panicking.rs:593:5 1: core::panicking::panic_fmt at /rustc/d9c13cd4531649c2028a8384cb4d4e54f985380e/library/core/src/panicking.rs:67:14 2: core::result::unwrap_failed at /rustc/d9c13cd4531649c2028a8384cb4d4e54f985380e/library/core/src/result.rs:1651:5 3: core::result::Result<T,E>::unwrap at /rustc/d9c13cd4531649c2028a8384cb4d4e54f985380e/library/core/src/result.rs:1076:23 4: n2db::storage::nvm_file::NVMTableStorage::init_test_database at ./src/storage/nvm_file.rs:96:27 5: n2db::test_nbtree at ./src/main.rs:58:5 6: n2db::main at ./src/main.rs:120:5 7: core::ops::function::FnOnce::call_once at /rustc/d9c13cd4531649c2028a8384cb4d4e54f985380e/library/core/src/ops/function.rs:250:5 note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

jzc15 commented 8 months ago

It reports that "Is a directory". Is the path on src/customer_config.rs(line3) is a directory? It should be the path of a file in NVM

polar1shu commented 8 months ago

I run this project successfully. This is a very good project and worthwhile for people on the topic of OLTP transactions on NVM. I suggest you modify README.md to make it easier for the programmer behind you to run it directly. The subprojects of a project cannot be downloaded automatically via git pull --recurse-submodules. The pmem_btree.data file needs to be created manually. The other can be created automatically.

Thank you.