Finished release [optimized + debuginfo] target(s) in 0.04s
Running `target/release/pebr-benchmark -dnmtree -i2 -t30 -r30 -p10 -mebr -s1`
NMTree: EBR, 30 threads
prefilled
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:378:21
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:214
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:384
8: rust_begin_unwind
at src/libstd/panicking.rs:311
9: core::panicking::panic_fmt
at src/libcore/panicking.rs:85
10: core::panicking::panic
at src/libcore/panicking.rs:49
11: core::option::Option<T>::unwrap
at /rustc/dddb7fca09dc817ba275602b950bb81a9032fb6d/src/libcore/macros.rs:12
12: pebr_benchmark::ebr::natarajan_mittal_tree::NMTreeMap<K,V>::remove
at ./src/ebr/natarajan_mittal_tree.rs:417
13: <pebr_benchmark::ebr::natarajan_mittal_tree::NMTreeMap<K,V> as pebr_benchmark::ebr::concurrent_map::ConcurrentMap<K,V>>::remove
at ./src/ebr/natarajan_mittal_tree.rs:486
14: pebr_benchmark::bench_ebr::{{closure}}::{{closure}}
at src/main.rs:603
15: crossbeam_utils::thread::ScopedThreadBuilder::spawn::{{closure}}
at /home/jeehoonkang/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.6.6/src/thread.rs:415
16: crossbeam_utils::thread::ScopedThreadBuilder::spawn::{{closure}}
at /home/jeehoonkang/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.6.6/src/thread.rs:423
17: <alloc::boxed::Box<F> as core::ops::function::FnMut<A>>::call_mut
at /rustc/dddb7fca09dc817ba275602b950bb81a9032fb6d/src/liballoc/boxed.rs:777
18: crossbeam_utils::thread::ScopedThreadBuilder::spawn::{{closure}}
at /home/jeehoonkang/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.6.6/src/thread.rs:431
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any', src/libcore/result.rs:1084:5
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:214
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:384
8: rust_begin_unwind
at src/libstd/panicking.rs:311
9: core::panicking::panic_fmt
at src/libcore/panicking.rs:85
10: core::result::unwrap_failed
at src/libcore/result.rs:1084
11: core::result::Result<T,E>::unwrap
at /rustc/dddb7fca09dc817ba275602b950bb81a9032fb6d/src/libcore/result.rs:852
12: pebr_benchmark::bench_ebr
at src/main.rs:529
13: pebr_benchmark::bench
at src/main.rs:320
14: pebr_benchmark::main
at src/main.rs:197
15: std::rt::lang_start::{{closure}}
at /rustc/dddb7fca09dc817ba275602b950bb81a9032fb6d/src/libstd/rt.rs:64
16: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:49
17: std::panicking::try::do_call
at src/libstd/panicking.rs:296
18: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
19: std::panicking::try
at src/libstd/panicking.rs:275
20: std::panic::catch_unwind
at src/libstd/panic.rs:394
21: std::rt::lang_start_internal
at src/libstd/rt.rs:48
22: main
23: __libc_start_main
24: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
위 segfault는 glibc, RUST_BACKTRACE=1 RUSTFLAGS="-Z sanitizer=address" cargo run --target x86_64-unknown-linux-gnu -- -dnmtree -i2 -t30 -r1 -p10 -mebr -s1 에서 거의 항상 나옴
RUST_BACKTRACE=1 cargo run --release -- -dnmtree -i2 -t30 -r30 -p10 -mebr -s1