Actions
Bug #56399
closedosd crash after restart, due to assertion in omap's list operation
% Done:
0%
Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Description
crimson-osd: ../src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:211: virtual crimson::os::seastore::omap_manager::OMapNode::list_ret crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, const std::optional<std::__cxx11::basic_string<char> >&, crimson::os::seastore::omap_manager::OMapNode::omap_list_config_t): Assertion `child_iter != iter_cend()' failed. Aborting on shard 0. Backtrace: 0# gsignal in /lib64/libc.so.6 1# abort in /lib64/libc.so.6 2# 0x00002B427EA9BC89 in /lib64/libc.so.6 3# 0x00002B427EAA9A76 in /lib64/libc.so.6 4# crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t) at /home/xuxuehan/src/ceph/build/../src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:256 5# auto crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t)::{lambda(auto:1&, auto:2&, auto:3&)#1}::operator()<crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > > >(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>&, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&) const::{lambda()#1}::operator()() const::{lambda(auto:1&&)#1}::operator()<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode> >({lambda()#1}) const at /home/xuxuehan/src/ceph/build/../src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:250 6# auto seastar::futurize_invoke<crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t)::{lambda(auto:1&, auto:2&, auto:3&)#1}::operator()<crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > > >(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>&, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&) const::{lambda()#1}::operator()() const::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode> >({lambda()#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>&&) at /home/xuxuehan/src/ceph/build/../src/crimson/common/interruptible_future.h:1525 7# auto crimson::interruptible::internal::call_with_interruption_impl<crimson::os::seastore::TransactionConflictCondition, crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t)::{lambda(auto:1&, auto:2&, auto:3&)#1}::operator()<crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > > >(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>&, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&) const::{lambda()#1}::operator()() const::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode> >(seastar::lw_shared_ptr<crimson::os::seastore::TransactionConflictCondition>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&&, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>&&) at /home/xuxuehan/src/ceph/build/../src/crimson/common/interruptible_future.h:193 8# auto crimson::interruptible::call_with_interruption<crimson::os::seastore::TransactionConflictCondition, crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t)::{lambda(auto:1&, auto:2&, auto:3&)#1}::operator()<crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > > >(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>&, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&) const::{lambda()#1}::operator()() const::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>, crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> > >::_future<crimson::errorated_future_marker<seastar::bool_class<crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> > >::stop_iteration_tag> > > >, 0>(crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> > >::lw_shared_ptr<crimson::os::seastore::TransactionConflictCondition>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&&) at /home/xuxuehan/src/ceph/build/../src/seastar/include/seastar/core/shared_ptr.hh:300 9# auto seastar::futurize_invoke<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode> > > >::safe_then_interruptible<true, crimson::os::seastore::omap_manager::OMapInnerNode::list(crimson::os::seastore::omap_manager::omap_context_t, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, crimson::os::seastore::OMapManager::omap_list_config_t)::{lambda(auto:1&, auto:2&, auto:3&)#1}::operator()<crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > > >(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t<true>&, crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&, std::tuple<bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::v15_2_0::list, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ceph::buffer::v15_2_0> > > >&) const::{lambda()#1}::operator()() const::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>, 0>(crimson::os::seastore::omap_manager::StringKVInnerNodeLayout::iter_t&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>&&)#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode> >({lambda()#1}, boost::intrusive_ptr<crimson::os::seastore::omap_manager::OMapNode>&&) at /home/xuxuehan/src/ceph/build/../src/seastar/include/seastar/core/shared_ptr.hh:300
Updated by Yingxin Cheng almost 2 years ago
- Related to Bug #54510: Assertion fails on OMapInnerNode::list added
Actions