Bug #55317
Updated by Ilya Dryomov about 2 years ago
Introduced in https://github.com/ceph/ceph/pull/45106:
<pre>
../src/common/Timer.cc: In function 'Context* CommonSafeTimer<Mutex>::add_event_after(ceph::timespan, Context*) [with Mutex = ceph::mutex_debug_detail::mutex_debug_impl<false>; ceph::timespan = std::chrono::duration<long unsigned int, std::ratio<1, 1000000000> >]' thread 7fb017fff700 time 2022-04-05T20:19:46.669342+0000
../src/common/Timer.cc: 132: FAILED ceph_assert(((lock).is_locked()))
ceph version 17.0.0-11411-g452e52a7e39 (452e52a7e39409e3409d59940133333416b830bc) quincy (dev)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x12e) [0x7fb171c03abb]
2: (ceph::register_assert_context(ceph::common::CephContext*)+0) [0x7fb171c03ced]
3: (CommonSafeTimer<ceph::mutex_debug_detail::mutex_debug_impl<false> >::add_event_after(std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >, Context*)+0x79) [0x7fb171be0229]
4: (CommonSafeTimer<ceph::mutex_debug_detail::mutex_debug_impl<false> >::add_event_after(double, Context*)+0x23) [0x7fb171be0251]
5: ./bin/unittest_rbd_mirror(+0xae17fe) [0x561e120e17fe]
6: (std::function<void (Context*)>::operator()(Context*) const+0x18) [0x561e120ccd1c]
7: (decltype (((forward<std::function<void (Context*)> const&>)({parm#1}))((get<0ul>)((forward<std::tuple<Context*> >)({parm#2})))) testing::internal::ApplyImpl<std::function<void (Context*)> const&, std::tuple<Context*>, 0ul>(std::funct
ion<void (Context*)> const&, std::tuple<Context*>&&, testing::internal::IndexSequence<0ul>)+0xc) [0x561e120ccd32]
8: (decltype (ApplyImpl((forward<std::function<void (Context*)> const&>)({parm#1}), (forward<std::tuple<Context*> >)({parm#2}), (testing::internal::MakeIndexSequenceImpl<std::tuple_size<std::remove_reference<std::tuple<Context*> >::type>
::value>::type)())) testing::internal::Apply<std::function<void (Context*)> const&, std::tuple<Context*> >(std::function<void (Context*)> const&, std::tuple<Context*>&&)+0x9) [0x561e120ccd40]
9: (testing::internal::FunctionMocker<void (Context*)>::UntypedPerformAction(void const*, void*) const+0x41) [0x561e12117f3d]
10: (testing::internal::UntypedFunctionMockerBase::UntypedInvokeWith(void*)+0x375) [0x561e12550d9d]
11: (rbd::mirror::image_replayer::MockReplayer::shut_down(Context*)+0x41) [0x561e12114e65]
12: ./bin/unittest_rbd_mirror(+0xae0b62) [0x561e120e0b62]
13: (Context::complete(int)+0x9) [0x561e120c0f4d]
14: (boost::asio::detail::completion_handler<librbd::asio::ContextWQ::queue(Context*, int)::{lambda()#1}, boost::asio::io_context::basic_executor_type<std::allocator<void>, 0u> >::do_complete(void*, boost::asio::detail::scheduler_operati
on*, boost::system::error_code const&, unsigned long)+0x9b) [0x561e120cf154]
15: (boost::asio::detail::strand_service::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long)+0x90) [0x561e126f65d8]
16: (boost::asio::detail::scheduler::run(boost::system::error_code&)+0x49c) [0x561e12b0f584]
17: (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()+0x59) [0x561e12d60bf9]
18: /lib64/libstdc++.so.6(+0xc2ba3) [0x7fb1700a5ba3]
19: /lib64/libpthread.so.0(+0x81cf) [0x7fb17341c1cf]
20: clone()
</pre>