Project

General

Profile

Actions

Bug #46668

closed

Object dispatch layers need to ensure all IO is complete prior to shut down

Added by Jason Dillaman over 3 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Jason Dillaman
Target version:
-
% Done:

0%

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

Description

The unit tests may periodically crash if there is in-flight IO when the image is closed. The "AioCompletion" will track any in-flight image-extent IO, but object-dispatch layers like SimpleSchedulerObjectDispatch do not track any queued IO.

#0  boost::circular_buffer<unsigned long, std::allocator<unsigned long> >::capacity (this=0xf0, this=0xf0) at /home/jdillaman/ceph_wip/build/boost/include/boost/circular_buffer/base.hpp:1473
#1  boost::circular_buffer<unsigned long, std::allocator<unsigned long> >::full (this=<optimized out>) at /home/jdillaman/ceph_wip/build/boost/include/boost/circular_buffer/base.hpp:821
#2  boost::circular_buffer<unsigned long, std::allocator<unsigned long> >::push_back_impl<unsigned long const&> (item=<synthetic pointer>: 1750882, this=0xf0)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/circular_buffer/base.hpp:1420
#3  boost::circular_buffer<unsigned long, std::allocator<unsigned long> >::push_back (item=<synthetic pointer>: 1750882, this=0xf0)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/circular_buffer/base.hpp:1474
#4  boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>::operator()<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > > (args=..., this=0xf0)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/accumulators/statistics/rolling_window.hpp:110
#5  boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > >::operator()<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>, boost::accumulators::tag::rolling_window_plus1> > (this=<synthetic pointer>, accumulator=...)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/accumulators/framework/accumulator_set.hpp:60
#6  boost::fusion::detail::for_each_linear<boost::fusion::cons_iterator<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>, boost::accumulators::tag::rolling_window_plus1>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_count_impl<unsigned long>, boost::accumulators::tag::rolling_count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_sum_impl<unsigned long>, boost::accumulators::tag::rolling_sum>, boost::fusion::nil_> > > >, boost::fusion::cons_iterator<boost::fusion::nil_>, boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > > > (last=..., f=<synthetic pointer>..., first=...)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:35
#7  boost::fusion::detail::for_each_dispatch<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>, boost::accumulators::tag::rolling_window_plus1>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_count_impl<unsigned long>, boost::accumulators::tag::rolling_count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_sum_impl<unsigned long>, boost::accumulators::tag::rolling_sum>, boost::fusion::nil_> > >, boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > >, boost::fusion::forward_traversal_tag> (f=<synthetic pointer>..., seq=...)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:46
#8  boost::fusion::detail::for_each<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>, boost::accumulators::tag::rolling_window_plus1>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_count_impl<unsigned long>, boost::accumulators::tag::rolling_count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_sum_impl<unsigned long>, boost::accumulators::tag::rolling_sum>, boost::fusion::nil_> > >, boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > > > (f=<synthetic pointer>..., seq=...) at /home/jdillaman/ceph_wip/build/boost/include/boost/fusion/algorithm/iteration/detail/for_each.hpp:143
#9  boost::fusion::for_each<boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_window_plus1_impl<unsigned long>, boost::accumulators::tag::rolling_window_plus1>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_count_impl<unsigned long>, boost::accumulators::tag::rolling_count>, boost::fusion::cons<boost::accumulators::detail::accumulator_wrapper<boost::accumulators::impl::rolling_sum_impl<unsigned long>, boost::accumulators::tag::rolling_sum>, boost::fusion::nil_> > >, boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > > > (f=..., seq=...) at /home/jdillaman/ceph_wip/build/boost/include/boost/fusion/algorithm/iteration/for_each.hpp:35
#10 boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void>::visit<boost::accumulators::detail::accumulator_visitor<boost::parameter::aux::flat_like_arg_list<boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::accumulator, boost::parameter::aux::tagged_argument<boost::accumulators::tag::accumulator, boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void> >, std::integral_constant<bool, true> >, boost::parameter::aux::flat_like_arg_tuple<boost::accumulators::tag::sample, boost::parameter::aux::tagged_argument<boost::accumulators::tag::sample, unsigned long const>, std::integral_constant<bool, true> > > > > (func=..., this=0xf0)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/accumulators/framework/accumulator_set.hpp:303
#11 boost::accumulators::accumulator_set<unsigned long, boost::accumulators::stats<boost::accumulators::tag::rolling_count, boost::accumulators::tag::rolling_sum, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, void>::operator()<unsigned long> (a0=<synthetic pointer>: 1750882, this=0xf0) at /home/jdillaman/ceph_wip/build/boost/include/boost/accumulators/framework/accumulator_set.hpp:377
#12 librbd::io::LatencyStats::add (latency=1750882, this=0xf0) at /home/jdillaman/ceph_wip/src/librbd/io/SimpleSchedulerObjectDispatch.cc:46
#13 librbd::io::SimpleSchedulerObjectDispatch<librbd::ImageCtx>::register_in_flight_request(unsigned long, utime_t const&, Context**)::{lambda(int)#1}::operator()(int) const (this=0x7f22680bbc80, 
    r=<optimized out>) at /home/jdillaman/ceph_wip/src/librbd/io/SimpleSchedulerObjectDispatch.cc:414
#14 0x000056181860fc99 in Context::complete (this=0x7f2264013be0, r=<optimized out>) at /home/jdillaman/ceph_wip/src/include/Context.h:99
#15 0x0000561818fdcf65 in librbd::io::ObjectDispatchSpec::C_Dispatcher::finish (this=0x7f22640123b0, r=<optimized out>) at /home/jdillaman/ceph_wip/src/librbd/io/ObjectDispatchSpec.cc:33
#16 0x0000561818fdd1f4 in librbd::io::ObjectDispatchSpec::C_Dispatcher::complete (this=<optimized out>, r=<optimized out>) at /home/jdillaman/ceph_wip/src/librbd/io/ObjectDispatchSpec.cc:23
#17 0x00005618189ee781 in librbd::io::ObjectRequest<librbd::ImageCtx>::finish (this=this@entry=0x7f2268050a50, r=r@entry=0) at /home/jdillaman/ceph_wip/src/log/SubsystemMap.h:72
#18 0x00005618189f1cba in librbd::io::AbstractObjectWriteRequest<librbd::ImageCtx>::post_write_object_map_update (this=this@entry=0x7f2268050a50) at /usr/include/c++/9/bits/unique_lock.h:191
#19 0x00005618189f23e1 in librbd::io::AbstractObjectWriteRequest<librbd::ImageCtx>::handle_write_object (this=this@entry=0x7f2268050a50, r=r@entry=0) at /home/jdillaman/ceph_wip/src/log/SubsystemMap.h:72
#20 0x00005618189f2a94 in librbd::io::AbstractObjectWriteRequest<librbd::ImageCtx>::write_object()::{lambda(int)#3}::operator()(int) const (this=<optimized out>, r=0)
--Type <RET> for more, q to quit, c to continue without paging--
    at /home/jdillaman/ceph_wip/src/librbd/io/ObjectRequest.cc:499
#21 _ZZN6librbd4asio4util20get_callback_adapterIZNS_2io26AbstractObjectWriteRequestINS_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_ENKUlN5boost6system10error_codeEDpOT_E_clIJEEEDaSC_SF_ (this=<synthetic pointer>, 
    ec=...) at /home/jdillaman/ceph_wip/src/librbd/asio/Utils.h:25
#22 _ZSt13__invoke_implIvZN6librbd4asio4util20get_callback_adapterIZNS0_2io26AbstractObjectWriteRequestINS0_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_JSD_EES9_St14__invoke_otherOT0_DpOT1_ (__f=<synthetic pointer>) at /usr/include/c++/9/bits/invoke.h:60
#23 _ZSt8__invokeIZN6librbd4asio4util20get_callback_adapterIZNS0_2io26AbstractObjectWriteRequestINS0_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_JSD_EENSt15__invoke_resultIS9_JDpT0_EE4typeESA_DpOSJ_ (__fn=<synthetic pointer>) at /usr/include/c++/9/bits/invoke.h:95
#24 _ZSt12__apply_implIZN6librbd4asio4util20get_callback_adapterIZNS0_2io26AbstractObjectWriteRequestINS0_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_St5tupleIJSD_EEJLm0EEEDcSA_OT0_St16integer_sequenceImJXspT1_EEE (__t=<synthetic pointer>, __f=<synthetic pointer>) at /usr/include/c++/9/tuple:1684
#25 _ZSt5applyIZN6librbd4asio4util20get_callback_adapterIZNS0_2io26AbstractObjectWriteRequestINS0_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_St5tupleIJSD_EEEDcSA_OT0_ (
    __t=<synthetic pointer>, __f=<synthetic pointer>) at /usr/include/c++/9/tuple:1694
#26 _ZNO4ceph5async17CompletionHandlerIZN6librbd4asio4util20get_callback_adapterIZNS2_2io26AbstractObjectWriteRequestINS2_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_St5tupleIJSF_EEEclEv (this=<synthetic pointer>) at /home/jdillaman/ceph_wip/src/common/async/bind_handler.h:52
#27 _ZN4ceph5async17ForwardingHandlerINS0_17CompletionHandlerIZN6librbd4asio4util20get_callback_adapterIZNS3_2io26AbstractObjectWriteRequestINS3_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_St5tupleIJSG_EEEEEclIJEEEvSJ_ (this=<synthetic pointer>) at /home/jdillaman/ceph_wip/src/common/async/forward_handler.h:47
#28 _ZN5boost4asio19asio_handler_invokeIN4ceph5async17ForwardingHandlerINS3_17CompletionHandlerIZN6librbd4asio4util20get_callback_adapterIZNS6_2io26AbstractObjectWriteRequestINS6_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlNS_6system10error_codeEDpOT_E_St5tupleIJSI_EEEEEEEEvRSF_z (function=<synthetic pointer>...) at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/handler_invoke_hook.hpp:69
#29 _ZN33boost_asio_handler_invoke_helpers6invokeIN4ceph5async17ForwardingHandlerINS2_17CompletionHandlerIZN6librbd4asio4util20get_callback_adapterIZNS5_2io26AbstractObjectWriteRequestINS5_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlN5boost6system10error_codeEDpOT_E_St5tupleIJSI_EEEEEESQ_EEvRSE_RT0_ (context=<synthetic pointer>..., function=<synthetic pointer>...)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#30 _ZN5boost4asio6detail11executor_opIN4ceph5async17ForwardingHandlerINS4_17CompletionHandlerIZN6librbd4asio4util20get_callback_adapterIZNS7_2io26AbstractObjectWriteRequestINS7_8ImageCtxEE12write_objectEvEUliE1_EEDaOT_EUlNS_6system10error_codeEDpOT_E_St5tupleIJSJ_EEEEEESaINS4_6detail14CompletionImplINS0_10io_context13executor_typeESN_vJSJ_EEEENS1_19scheduler_operationEE11do_completeEPvPSY_RKSJ_m (owner=0x56181b005f10, 
    base=<optimized out>) at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/detail/executor_op.hpp:70
#31 0x000056181911a622 in boost::asio::detail::scheduler_operation::complete (bytes_transferred=<optimized out>, ec=..., owner=0x56181b005f10, this=<optimized out>)
    at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/detail/scheduler_operation.hpp:40
#32 boost::asio::detail::scheduler::do_run_one (ec=..., this_thread=..., lock=..., this=<optimized out>) at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/detail/impl/scheduler.ipp:447
#33 boost::asio::detail::scheduler::run (this=0x56181b005f10, ec=...) at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/detail/impl/scheduler.ipp:200
#34 0x000056181911fbc6 in boost::asio::io_context::run (this=<optimized out>) at /home/jdillaman/ceph_wip/build/boost/include/boost/asio/impl/io_context.ipp:63
#35 ceph::async::io_context_pool::start(short)::{lambda()#1}::operator()() const (__closure=0x56181b1b1d18) at /home/jdillaman/ceph_wip/src/common/async/context_pool.h:68
#36 std::__invoke_impl<void, ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::__invoke_other, ceph::async::io_context_pool::start(short)::{lambda()#1}&&) (__f=...)
    at /usr/include/c++/9/bits/invoke.h:60
#37 std::__invoke<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::__invoke_result&&, (ceph::async::io_context_pool::start(short)::{lambda()#1}&&)...) (__fn=...)
    at /usr/include/c++/9/bits/invoke.h:95
#38 std::invoke<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::invoke_result&&, (ceph::async::io_context_pool::start(short)::{lambda()#1}&&)...) (__fn=...) at /usr/include/c++/9/functional:81
#39 make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}::operator()<{lambda()#1}> (fun=..., this=0x56181b1b1d20) at /home/jdillaman/ceph_wip/src/common/Thread.h:79
#40 std::__invoke_impl<void, make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}>(std::__invoke_other, make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}&&, {lambda()#1}&&) (__f=...) at /usr/include/c++/9/bits/invoke.h:60
#41 std::__invoke<make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}>(make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}&&) (__fn=...) at /usr/include/c++/9/bits/invoke.h:95
#42 std::thread::_Invoker<std::tuple<make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x56181b1b1d18) at /usr/include/c++/9/thread:244
#43 std::thread::_Invoker<std::tuple<make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}> >::operator()() (this=0x56181b1b1d18) at /usr/include/c++/9/thread:251
#44 std::thread::_State_impl<std::thread::_Invoker<std::tuple<make_named_thread<ceph::async::io_context_pool::start(short)::{lambda()#1}>(std::basic_string_view<char, std::char_traits<char> >, ceph::async::io_context_pool::start(short)::{lambda()#1}&&)::{lambda(auto:1, auto:2&&)#1}, {lambda()#1}> > >::_M_run() (this=0x56181b1b1d10) at /usr/include/c++/9/thread:195
#45 0x00007f22911a43d4 in execute_native_thread_routine () from /lib64/libstdc++.so.6
#46 0x00007f229a4114e2 in start_thread () from /lib64/libpthread.so.0
#47 0x00007f2290ea36a3 in clone () from /lib64/libc.so.6

Related issues 1 (0 open1 closed)

Copied to rbd - Backport #46711: octopus: Object dispatch layers need to ensure all IO is complete prior to shut downResolvedNathan CutlerActions
Actions #1

Updated by Jason Dillaman over 3 years ago

  • Status changed from In Progress to Fix Under Review
  • Pull request ID set to 36242
Actions #2

Updated by Mykola Golub over 3 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #3

Updated by Nathan Cutler over 3 years ago

  • Copied to Backport #46711: octopus: Object dispatch layers need to ensure all IO is complete prior to shut down added
Actions #4

Updated by Nathan Cutler over 3 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Actions

Also available in: Atom PDF