Actions
Bug #38230
closedsegv in onode lookup
Status:
Resolved
Priority:
High
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
0> 2019-02-07 20:11:11.850 7fb6fe051700 -1 *** Caught signal (Segmentation fault) ** in thread 7fb6fe051700 thread_name:tp_osd_tp ceph version 14.0.1-3498-g8dd67ee (8dd67ee3d18cb1f015257a0d5bd3ab24b6c4aebb) nautilus (dev) 1: (()+0xf6d0) [0x7fb72042b6d0] 2: (std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node(unsigned long, ghobject_t const&, unsigned long) const+0x4c) [0x55a7603b17ac] 3: (std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find(ghobject_t const&)+0xd5) [0x55a7603b1985] 4: (BlueStore::OnodeSpace::lookup(ghobject_t const&)+0x72) [0x55a76031f4e2] 5: (BlueStore::Collection::get_onode(ghobject_t const&, bool)+0x100) [0x55a760330a90] 6: (BlueStore::_txc_add_transaction(BlueStore::TransContext*, ObjectStore::Transaction*)+0x1ae8) [0x55a760389538] 7: (BlueStore::queue_transactions(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >&, boost::intrusive_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x528) [0x55a76038b1f8] 8: (non-virtual thunk to PrimaryLogPG::queue_transactions(std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >&, boost::intrusive_ptr<OpRequest>)+0x54) [0x55a7600edc14] 9: (ReplicatedBackend::do_repop(boost::intrusive_ptr<OpRequest>)+0xaa9) [0x55a7601e6859] 10: (ReplicatedBackend::_handle_message(boost::intrusive_ptr<OpRequest>)+0x187) [0x55a7601f4d37] 11: (PGBackend::handle_message(boost::intrusive_ptr<OpRequest>)+0x87) [0x55a7600ff547] 12: (PrimaryLogPG::do_request(boost::intrusive_ptr<OpRequest>&, ThreadPool::TPHandle&)+0x695) [0x55a7600abd65] 13: (OSD::dequeue_op(boost::intrusive_ptr<PG>, boost::intrusive_ptr<OpRequest>, ThreadPool::TPHandle&)+0x1a9) [0x55a75feece89] 14: (PGOpItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x62) [0x55a760181d72] 15: (OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0xa0c) [0x55a75ff09cfc] 16: (ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x433) [0x55a7604fb213] 17: (ShardedThreadPool::WorkThreadSharded::entry()+0x10) [0x55a7604fe2b0] 18: (()+0x7e25) [0x7fb720423e25] 19: (clone()+0x6d) [0x7fb71f2ecbad]
/a/sage-2019-02-07_18:03:07-rados-wip-sage-testing-2019-02-07-0953-distro-basic-smithi/3560979
Updated by Sage Weil over 5 years ago
- Related to Bug #38024: segv, heap corruption in ec encode_and_write added
Updated by Sage Weil over 5 years ago
i'm guessing this is the same heap corruption we've been seeing, but logging it anyway
Updated by Sage Weil about 5 years ago
(gdb) bt #0 0x00007f60dfb8c74d in tc_newarray () from /usr/lib/x86_64-linux-gnu/libtcmalloc.so.4 #1 0x000055c9fd5fe2f2 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (this=this@entry=0x7f60b4d1e280, __beg=0x55ca244a9b00 "ceph version 14.0.1-3425-gff23e1e (ff23e1ed2868ffdfbd9f201f6ecbb8426b3aa0d7) nautilus (dev)������\223", __end=<optimized out>) at /usr/include/c++/7/bits/basic_string.tcc:219 #2 0x000055c9fd5fe762 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*> (__end=<optimized out>, __beg=<optimized out>, this=0x7f60b4d1e280) at /usr/include/c++/7/bits/basic_string.h:236 #3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*> (__end=<optimized out>, __beg=<optimized out>, this=0x7f60b4d1e280) at /usr/include/c++/7/bits/basic_string.h:255 #4 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*, void> (__a=..., __end=<optimized out>, __beg=<optimized out>, this=0x7f60b4d1e280) at /usr/include/c++/7/bits/basic_string.h:607 #5 std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str (this=<optimized out>, this=<optimized out>) at /usr/include/c++/7/sstream:173 #6 std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str (this=0x7f60b4d1e2a0) at /usr/include/c++/7/sstream:638 #7 pretty_version_to_str[abi:cxx11]() () at ./src/common/version.cc:48 #8 0x000055c9fd4784aa in ceph::BackTrace::print (this=this@entry=0x7f60b4d1ec00, out=...) at ./src/common/BackTrace.cc:19 #9 0x000055c9fd45e286 in handle_fatal_signal (signum=11) at ./src/global/signal_handler.cc:169 #10 <signal handler called> #11 0x00007f60dfb8c74d in tc_newarray () from /usr/lib/x86_64-linux-gnu/libtcmalloc.so.4 #12 0x000055c9fd2b9d0b in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::allocate (this=<optimized out>, __n=1) at /usr/include/c++/7/ext/new_allocator.h:111 #13 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > > >::allocate (__a=..., __n=1) at /usr/include/c++/7/bits/alloc_traits.h:436 #14 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::_M_get_node (this=0x55ca0ee91f30, this@entry=0x55ca0ee92020) at /usr/include/c++/7/bits/stl_tree.h:588 #15 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >&&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >&&>&&, std::tuple<>&&) (this=0x55ca0ee91f30, this@entry=0x55ca0ee92020) at /usr/include/c++/7/bits/stl_tree.h:642 #16 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >&&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >&&>&&, std::tuple<>&&) (this=this@entry=0x55ca0ee91f30, __pos=__pos@entry={first = "", second = {_raw = 0x303a312c30303001, _off = 250158656, _len = 21962}}) at /usr/include/c++/7/bits/stl_tree.h:2398 #17 0x000055c9fd30be9b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::operator[] (__k=..., this=0x55ca0ee91f30) at /usr/include/c++/7/bits/stl_map.h:512 #18 BlueStore::_setattrs (this=this@entry=0x55ca096e9000, txc=txc@entry=0x55ca0d8c8400, c=..., o=..., aset=std::map with 2 elements = {...}) at ./src/os/bluestore/BlueStore.cc:12677 #19 0x000055c9fd32b736 in BlueStore::_txc_add_transaction (this=this@entry=0x55ca096e9000, txc=txc@entry=0x55ca0d8c8400, t=t@entry=0x55ca18fa26e0) at ./src/os/bluestore/BlueStore.cc:11023 #20 0x000055c9fd3306b7 in BlueStore::queue_transactions (this=0x55ca096e9000, ch=..., tls=std::vector of length 1, capacity 1 = {...}, op=..., handle=0x0) at ./src/os/bluestore/BlueStore.cc:10753 #21 0x000055c9fd07fc44 in non-virtual thunk to PrimaryLogPG::queue_transactions(std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >&, boost::intrusive_ptr<OpRequest>) () #22 0x000055c9fd17bc70 in ReplicatedBackend::submit_transaction (this=0x55ca0bdde780, soid=..., delta_stats=..., at_version=..., _t=..., trim_to=..., roll_forward_to=..., _log_entries=std::vector of length 1, capacity 1 = {...}, hset_history=..., on_all_commit=0x55ca0fa200e0, tid=64783, reqid=..., orig_op=...) at ./src/osd/ReplicatedBackend.cc:502 #23 0x000055c9fcfd86d6 in PrimaryLogPG::issue_repop (this=this@entry=0x55ca0be0c000, repop=repop@entry=0x55ca0c8fe580, ctx=ctx@entry=0x55ca11123600) at ./src/osd/PrimaryLogPG.cc:10578 #24 0x000055c9fd03c76a in PrimaryLogPG::execute_ctx (this=this@entry=0x55ca0be0c000, ctx=ctx@entry=0x55ca11123600) at ./src/osd/PrimaryLogPG.cc:4111 #25 0x000055c9fd04076e in PrimaryLogPG::do_op (this=this@entry=0x55ca0be0c000, op=...) at ./src/osd/PrimaryLogPG.cc:2431 #26 0x000055c9fd042758 in PrimaryLogPG::do_request (this=0x55ca0be0c000, op=..., handle=...) at ./src/osd/PrimaryLogPG.cc:1868 #27 0x000055c9fce6dd93 in OSD::dequeue_op (this=this@entry=0x55ca097b4000, pg=..., op=..., handle=...) at ./src/osd/OSD.cc:9687 #28 0x000055c9fd117962 in PGOpItem::run (this=<optimized out>, osd=0x55ca097b4000, sdata=<optimized out>, pg=..., handle=...) at ./src/osd/OpQueueItem.cc:24 #29 0x000055c9fce8baf5 in OpQueueItem::run (handle=..., pg=..., sdata=<optimized out>, osd=<optimized out>, this=0x7f60b4d264e0) at ./src/osd/OpQueueItem.h:134 #30 OSD::ShardedOpWQ::_process (this=0x55ca097b51f8, thread_index=<optimized out>, hb=<optimized out>) at ./src/osd/OSD.cc:10862 #31 0x000055c9fd4b613c in ShardedThreadPool::shardedthreadpool_worker (this=0x55ca097b4ad0, thread_index=14) at ./src/common/WorkQueue.cc:311 #32 0x000055c9fd4b9210 in ShardedThreadPool::WorkThreadSharded::entry (this=<optimized out>) at ./src/common/WorkQueue.h:699 #33 0x00007f60ddc786db in start_thread (arg=0x7f60b4d29700) at pthread_create.c:463 #34 0x00007f60dca1388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) f 23 #23 0x000055c9fcfd86d6 in PrimaryLogPG::issue_repop (this=this@entry=0x55ca0be0c000, repop=repop@entry=0x55ca0c8fe580, ctx=ctx@entry=0x55ca11123600) at ./src/osd/PrimaryLogPG.cc:10578 10578 ./src/osd/PrimaryLogPG.cc: No such file or directory. (gdb) p pgid p ingoNo symbol "pgid" in current context. (gdb) p info.pgid $1 = {pgid = {m_pool = 4, m_seed = 6, static calc_name_buf_size = 36 '$'}, shard = {id = -1 '�', static NO_SHARD = {id = -1 '�', static NO_SHARD = <same as static member of an already seen type>}}, static calc_name_buf_size = 40 '('}
/a/sage-2019-02-07_22:38:18-rados-master-distro-basic-smithi/3561541
Updated by Sage Weil about 5 years ago
- Related to Bug #37914: bluestore: segmentation fault added
Updated by Sage Weil about 5 years ago
- Status changed from 12 to Resolved
Actions