Project

General

Profile

Bug #18226

Updated by Kefu Chai over 7 years ago

./bin/ceph_test_objectstore    --gtest_filter=ObjectStore/StoreTest.SyntheticMatrixCsumVsCompression/2 

 fails with  
 <pre> 
 *** Caught signal (Segmentation fault) ** 
  in thread 7f68ef3b2740 thread_name:ceph_test_objec 
  ceph version Development (no_version) 
  1: (ceph::BackTrace::BackTrace(int)+0x2d) [0x556892527bcb] 
  2: (()+0x126af02) [0x5568929d8f02] 
  3: (()+0x11100) [0x7f68eefaa100] 
  4: (std::enable_if<boost::is_same<bluestore_extent_ref_map_t::record_t const, bluestore_extent_ref_map_t::record_t>::value||boost::is_same<bluestore_extent_ref_map_t::record_t con 
 st, bluestore_extent_ref_map_t::record_t const>::value, void>::type _denc_friend<bluestore_extent_ref_map_t::record_t const, unsigned long>(bluestore_extent_ref_map_t::record_t con 
 st&, unsigned long&)+0x14) [0x556892647d3a] 
  5: (bluestore_extent_ref_map_t::record_t::bound_encode(unsigned long&) const+0x23) [0x55689263dff5]                                                                                   6: (bluestore_extent_ref_map_t::bound_encode(unsigned long&) const+0x68) [0x55689263e0c6] 
  7: (denc_traits<bluestore_extent_ref_map_t, void>::bound_encode(bluestore_extent_ref_map_t const&, unsigned long&, unsigned long)+0x27) [0x55689263e35b]                              8: (std::enable_if<(denc_traits<bluestore_extent_ref_map_t, void>::supported!=(0))&&(!denc_traits<bluestore_extent_ref_map_t, void>::featured), void>::type denc<bluestore_extent_ref_map_t, denc_traits<bluestore_extent_ref_map_t, void> >(bluestore_extent_ref_map_t const&, unsigned long&, unsigned long)+0x2c) [0x5568926552c7]                                     9: (std::enable_if<boost::is_same<bluestore_shared_blob_t const, bluestore_shared_blob_t>::value||boost::is_same<bluestore_shared_blob_t const, bluestore_shared_blob_t const>::val 
 ue, void>::type _denc_friend<bluestore_shared_blob_t const, unsigned long>(bluestore_shared_blob_t const&, unsigned long&)+0x5e) [0x55689264867c] 
  10: (bluestore_shared_blob_t::bound_encode(unsigned long&) const+0x23) [0x556892640251] 
  11: (denc_traits<bluestore_shared_blob_t, void>::bound_encode(bluestore_shared_blob_t const&, unsigned long&, unsigned long)+0x27) [0x5568926402e1] 
  12: (std::enable_if<(denc_traits<bluestore_shared_blob_t, void>::supported==(1))&&(!denc_traits<bluestore_shared_blob_t, void>::featured), void>::type encode<bluestore_shared_blob 
 _t, denc_traits<bluestore_shared_blob_t, void> >(bluestore_shared_blob_t const&, ceph::buffer::list&, unsigned long)+0x44) [0x556892652978] 
  13: (BlueStore::_txc_write_nodes(BlueStore::TransContext*, std::shared_ptr<KeyValueDB::TransactionImpl>)+0xe85) [0x556892619681] 
  14: (BlueStore::queue_transactions(ObjectStore::Sequencer*, std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >&, std::shared_ptr<TrackedOp>, ThreadPo 
 ol::TPHandle*)+0x772) [0x55689261fbe2] 
  15: (ObjectStore::queue_transactions(ObjectStore::Sequencer*, std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >&, Context*, Context*, Context*, std: 
 :shared_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x109) [0x5568924a662d] 
  16: (ObjectStore::queue_transaction(ObjectStore::Sequencer*, ObjectStore::Transaction&&, Context*, Context*, Context*, std::shared_ptr<TrackedOp>, ThreadPool::TPHandle*)+0xa5) [0x 
 5568924a64bd] 

 </pre> 

 because "denc_varint_lowz(v.length, p)" is called with  
 <pre> 
 <code class="cpp"> 
   bound_encode(const std::list<T>& s, size_t& p) { 
     size_t elem_size = 0; 
     denc(*(const T*)nullptr, elem_size); 
     p += sizeof(uint32_t) + elem_size * s.size(); 
   } 
 </code> 
 </pre>

Back