Actions
Bug #42823
closedcrash in BlueStore::Onode destructor
Status:
Duplicate
Priority:
Normal
Assignee:
-
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
Testing xfstests on cephfs in vstart cluster, and OSD crashed:
ceph version 15.0.0-7243-gb95f354340d0 (b95f354340d057c7a783455f08253f808f665ff9) octopus (dev) 1: (()+0x2da4e7a) [0x5580b8315e7a] 2: (()+0x14b20) [0x7f31fe4c8b20] 3: (gsignal()+0x145) [0x7f31fdf64625] 4: (abort()+0x12b) [0x7f31fdf4d8d9] 5: (()+0x257a9) [0x7f31fdf4d7a9] 6: (()+0x34a66) [0x7f31fdf5ca66] 7: (void boost::intrusive::detail::destructor_impl<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0> >(boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>&, boost::intrusive::detail::link_dispatch<(boost::intrusive::link_mode_type)1>)+0x3e) [0x5580b79e9d16] 8: (boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>::~generic_hook()+0x18) [0x5580b79c523e] 9: (boost::intrusive::list_member_hook<void, void, void>::~list_member_hook()+0x18) [0x5580b79a1d3a] 10: (BlueStore::Onode::~Onode()+0x66) [0x5580b81aba02] 11: (BlueStore::Onode::put()+0x34) [0x5580b81aba5c] 12: (()+0x2c3f2dc) [0x5580b81b02dc] 13: (boost::intrusive_ptr<BlueStore::Onode>::~intrusive_ptr()+0x27) [0x5580b81be0c7] 14: (std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >::~pair()+0x1e) [0x5580b821e96c] 15: (void mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> >::destroy<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >(std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >*)+0x1c) [0x5580b821e998] 16: (decltype (({parm#1}.destroy)({parm#2})) std::allocator_traits<mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> > >::_S_destroy<mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> >, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >(mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> >&, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >*, int)+0x26) [0x5580b8217e68] 17: (void std::allocator_traits<mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> > >::destroy<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >(mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> >&, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >*)+0x28) [0x5580b820eda6] 18: (std::__detail::_Hashtable_alloc<mempool::pool_allocator<(mempool::pool_index_t)4, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true> > >::_M_deallocate_node(std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true>*)+0x37) [0x5580b81fedf3] 19: (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_erase(unsigned long, std::__detail::_Hash_node_base*, std::__detail::_Hash_node<std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, true>*)+0x12d) [0x5580b81ff0b3] 20: (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_erase(std::integral_constant<bool, true>, ghobject_t const&)+0x8f) [0x5580b81e73af] 21: (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> >::erase(ghobject_t const&)+0x32) [0x5580b81d0764] 22: (std::unordered_map<ghobject_t, boost::intrusive_ptr<BlueStore::Onode>, std::hash<ghobject_t>, std::equal_to<ghobject_t>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > > >::erase(ghobject_t const&)+0x23) [0x5580b81bac13] 23: (BlueStore::OnodeSpace::remove(ghobject_t const&)+0x27) [0x5580b81ac167] 24: (LruOnodeCacheShard::_trim_to(unsigned long)+0x5fe) [0x5580b81b1754] 25: (BlueStore::CacheShard::_trim()+0x59) [0x5580b81abc0d] 26: (BlueStore::OnodeSpace::add(ghobject_t const&, boost::intrusive_ptr<BlueStore::Onode>)+0x437) [0x5580b810a313] 27: (BlueStore::Collection::get_onode(ghobject_t const&, bool, bool)+0x934) [0x5580b811c3ac] 28: (BlueStore::_txc_add_transaction(BlueStore::TransContext*, ceph::os::Transaction*)+0xd1f) [0x5580b8179f41] 29: (BlueStore::queue_transactions(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, std::vector<ceph::os::Transaction, std::allocator<ceph::os::Transaction> >&, boost::intrusive_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x2fb) [0x5580b817877d] 30: (ObjectStore::queue_transaction(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ceph::os::Transaction&&, boost::intrusive_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x93) [0x5580b79a451d] 31: (OSD::dispatch_context(PeeringCtx&, PG*, std::shared_ptr<OSDMap const>, ThreadPool::TPHandle*)+0x806) [0x5580b797d458] 32: (OSD::dequeue_peering_evt(OSDShard*, PG*, std::shared_ptr<PGPeeringEvent>, ThreadPool::TPHandle&)+0x37a) [0x5580b7983260] 33: (ceph::osd::scheduler::PGPeeringItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x73) [0x5580b7df29d5] 34: (ceph::osd::scheduler::OpSchedulerItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x4b) [0x5580b79ae813] 35: (OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x3629) [0x5580b7990d87] 36: (ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x59c) [0x5580b83ba97e] 37: (ShardedThreadPool::WorkThreadSharded::entry()+0x25) [0x5580b83bc35b] 38: (Thread::entry_wrapper()+0x78) [0x5580b83a7134] 39: (Thread::_entry_func(void*)+0x18) [0x5580b83a70b2] 40: (()+0x94e2) [0x7f31fe4bd4e2] 41: (clone()+0x43) [0x7f31fe029643]
Build is based on 7ffb5d9e79207da, with some MDS patches on top.
Files
Updated by Jeff Layton over 4 years ago
- File osd.0.log.xz osd.0.log.xz added
New crash today. Looks somewhat similar to the old one. This one is based on e4b3036422df70e3 with some cephfs patches on top:
0> 2019-11-22T11:11:54.648-0500 7fe728ba8700 -1 *** Caught signal (Segmentation fault) ** in thread 7fe728ba8700 thread_name:tp_osd_tp ceph version 15.0.0-7447-g399dfa23900a (399dfa23900aa816c6f433181576e3b5b7e6e743) octopus (dev) 1: (()+0x2ebe0c6) [0x5650151610c6] 2: (()+0x14b20) [0x7fe749309b20] 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> >::_M_bucket_index(ghobject_t const&, unsigned long) const+0x18) [0x5650150329d2] 4: (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_erase(std::integral_constant<bool, true>, ghobject_t const&)+0x3e) [0x56501502fdf6] 5: (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> >::erase(ghobject_t const&)+0x32) [0x5650150191dc] 6: (std::unordered_map<ghobject_t, boost::intrusive_ptr<BlueStore::Onode>, std::hash<ghobject_t>, std::equal_to<ghobject_t>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > > >::erase(ghobject_t const&)+0x23) [0x565015003643] 7: (BlueStore::OnodeSpace::remove(ghobject_t const&)+0x27) [0x565014ff4c69] 8: (LruOnodeCacheShard::_trim_to(unsigned long)+0x5fe) [0x565014ffa256] 9: (BlueStore::CacheShard::_trim()+0x59) [0x565014ff470f] 10: (BlueStore::OnodeSpace::add(ghobject_t const&, boost::intrusive_ptr<BlueStore::Onode>)+0x437) [0x565014f52b29] 11: (BlueStore::Collection::get_onode(ghobject_t const&, bool, bool)+0x934) [0x565014f64bc2] 12: (BlueStore::_txc_add_transaction(BlueStore::TransContext*, ceph::os::Transaction*)+0xd1f) [0x565014fc2757] 13: (BlueStore::queue_transactions(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, std::vector<ceph::os::Transaction, std::allocator<ceph::os::Transaction> >&, boost::intrusive_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x2fb) [0x565014fc0f93] 14: (ObjectStore::queue_transaction(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ceph::os::Transaction&&, boost::intrusive_ptr<TrackedOp>, ThreadPool::TPHandle*)+0x93) [0x56501479fde3] 15: (OSD::dispatch_context(PeeringCtx&, PG*, std::shared_ptr<OSDMap const>, ThreadPool::TPHandle*)+0x806) [0x56501477706c] 16: (OSD::dequeue_peering_evt(OSDShard*, PG*, std::shared_ptr<PGPeeringEvent>, ThreadPool::TPHandle&)+0x37a) [0x56501477ce74] 17: (ceph::osd::scheduler::PGPeeringItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x73) [0x565014c188d9] 18: (ceph::osd::scheduler::OpSchedulerItem::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x4b) [0x5650147a9e13] 19: (OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0x3629) [0x56501478aa93] 20: (ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x59c) [0x565015204eb6] 21: (ShardedThreadPool::WorkThreadSharded::entry()+0x25) [0x565015206b83] 22: (Thread::entry_wrapper()+0x78) [0x5650151f116a] 23: (Thread::_entry_func(void*)+0x18) [0x5650151f10e8] 24: (()+0x94e2) [0x7fe7492fe4e2] 25: (clone()+0x43) [0x7fe748e6a693] NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
Actions