Project

General

Profile

Actions

Bug #61608

closed

OSD crashes accessing outdated extents in scenarios where seastore_main_device_type is set to RANDOM_BLOCK_SSD

Added by Xuehan Xu 12 months ago. Updated 11 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
seastore
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

#7  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140336010657408) at ./nptl/pthread_kill.c:44
#8  __pthread_kill_internal (signo=6, threadid=140336010657408) at ./nptl/pthread_kill.c:78
#9  __GI___pthread_kill (threadid=140336010657408, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#10 0x00007fa28658f476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#11 0x00007fa2865757f3 in __GI_abort () at ./stdlib/abort.c:79
#12 0x00007fa28657571b in __assert_fail_base (fmt=0x7fa28672a150 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55663a6b795d "laddr != L_ADDR_NULL", file=0x55663a67b438 "/home/xuxuehan/src/ceph/src/crimson/os/seastore/cached_extent.h", line=1104, 
    function=<optimized out>) at ./assert/assert.c:92
#13 0x00007fa286586e96 in __GI___assert_fail (assertion=0x55663a6b795d "laddr != L_ADDR_NULL", file=0x55663a67b438 "/home/xuxuehan/src/ceph/src/crimson/os/seastore/cached_extent.h", line=1104, 
    function=0x55663a6b7900 "crimson::os::seastore::laddr_t crimson::os::seastore::LogicalCachedExtent::get_laddr() const") at ./assert/assert.c:101
#14 0x0000556639339637 in crimson::os::seastore::LogicalCachedExtent::get_laddr (this=0x7fa27e3e3100) at /home/xuxuehan/src/ceph/src/crimson/os/seastore/cached_extent.h:1104
#15 0x00005566397a481c in crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}::operator()<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) const (__closure=0x7fa27e09f618, e=...) at /home/xuxuehan/src/ceph/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h:115
#16 0x000055663979eefe in seastar::futurize<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<22> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<34> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::NodeExtent> > > > >::invoke<crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (func=...)
    at /home/xuxuehan/src/ceph/src/crimson/common/interruptible_future.h:1559
#17 0x0000556639796791 in seastar::futurize_invoke<crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (func=...)
    at /home/xuxuehan/src/ceph/src/seastar/include/seastar/core/future.hh:2178
#18 0x0000556639796986 in crimson::interruptible::internal::call_with_interruption_impl<crimson::os::seastore::TransactionConflictCondition, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(seastar::lw_shared_ptr<crimson::os::seastore::TransactionConflictCondition>, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (interrupt_condition=..., func=...) at /home/xuxuehan/src/ceph/src/crimson/common/interruptible_future.h:200
#19 0x0000556639796a97 in crimson::interruptible::call_with_interruption<crimson::os::seastore::TransactionConflictCondition, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(seastar::lw_shared_ptr<crimson::os::seastore::TransactionConflictCondition>, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (interrupt_condition=..., func=..., arg=...) at /home/xuxuehan/src/ceph/src/crimson/common/interruptible_future.h:261
#20 0x0000556639796685 in crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}::operator()(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (__closure=0x7fa27e09f618, arg=...)
    at /home/xuxuehan/src/ceph/src/crimson/common/interruptible_future.h:881
#21 0x00005566397a4992 in seastar::futurize<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<22> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<34> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::NodeExtent> > > > >::invoke<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (func=...) at /home/xuxuehan/src/ceph/src/crimson/common/interruptible_future.h:1559
#22 0x000055663979efae in seastar::futurize_invoke<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (func=...) at /home/xuxuehan/src/ceph/src/seastar/include/seastar/core/future.hh:2178
#23 0x000055663979f024 in crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<22> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<34> > >::futurize<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<22> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<34> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::NodeExtent> > > > >::invoke<crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> >(crimson::interruptible::interruptible_future_detail<crimson::os::seastore::TransactionConflictCondition, crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent> > > >::safe_then_interruptible<true, crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>, 0>(crimson::os::seastore::onode::SeastoreNodeExtentManager<false>::read_extent(crimson::os::seastore::Transaction&, unsigned long)::{lambda(auto:1&&)#1}&&)::{lambda(boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&)#1}&&, boost::intrusive_ptr<crimson::os::seastore::onode::SeastoreNodeExtent>&&) (func=...) at /home/xuxuehan/src/ceph/src/crimson/common/errorator.h:1078
#24 0x0000556639796d3e in crimson::errorator<crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<5> >, crimson::unthrowable_wrapper<std::error_code const&, crimson::ec<2> > >::_future<crimson::errorated_future_marker<boost::intrusive_ptr<crimson::os::seast
Actions #1

Updated by Xuehan Xu 12 months ago

  • Pull request ID set to 51948
Actions #2

Updated by Yingxin Cheng 11 months ago

  • Status changed from New to Resolved
  • Tags set to seastore
Actions

Also available in: Atom PDF