kaist-cp / smr-benchmark

SMR Benchmark: A Microbenchmark Suite for Concurrent Safe Memory Reclamation Schemes
http://cp.kaist.ac.kr/gc
MIT License
36 stars 5 forks source link

segfault #17

Closed jeehoonkang closed 5 years ago

jeehoonkang commented 5 years ago
     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.
jeehoonkang commented 5 years ago

위 segfault는 glibc, RUST_BACKTRACE=1 RUSTFLAGS="-Z sanitizer=address" cargo run --target x86_64-unknown-linux-gnu -- -dnmtree -i2 -t30 -r1 -p10 -mebr -s1 에서 거의 항상 나옴

jeehoonkang commented 5 years ago

closed in https://github.com/kaist-cp/pebr-benchmark/commit/a1f56c6f0102b77bac22c9499a08f49ba56e9208