Project

General

Profile

Actions

Bug #55317

closed

[test] add_event_after() expects an externally-provided mutex to be held

Added by Ilya Dryomov about 2 years ago. Updated almost 2 years ago.

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

0%

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

Description

Introduced in https://github.com/ceph/ceph/pull/45106:

../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()

Related issues 3 (0 open3 closed)

Related to rbd - Bug #54344: [rbd-mirror] disabling and shortly after re-enabling mirroring on the image can lead to split-brainResolvedIlya Dryomov

Actions
Related to devops - Bug #55318: ceph::mutex debugging is disabled in "make check" buildsResolvedIlya Dryomov

Actions
Copied to rbd - Backport #55330: quincy: [test] add_event_after() expects an externally-provided mutex to be heldResolvedIlya DryomovActions
Actions #1

Updated by Ilya Dryomov about 2 years ago

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

Updated by Ilya Dryomov about 2 years ago

  • Description updated (diff)
Actions #3

Updated by Ilya Dryomov about 2 years ago

  • Related to Bug #54344: [rbd-mirror] disabling and shortly after re-enabling mirroring on the image can lead to split-brain added
Actions #4

Updated by Ilya Dryomov about 2 years ago

  • Backport set to quincy

For octopus and pacific, the fix is to be appended to https://github.com/ceph/ceph/pull/45177 and https://github.com/ceph/ceph/pull/45184 respectively.

Actions #5

Updated by Ilya Dryomov about 2 years ago

  • Related to Bug #55318: ceph::mutex debugging is disabled in "make check" builds added
Actions #6

Updated by Ilya Dryomov about 2 years ago

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

Updated by Backport Bot about 2 years ago

  • Copied to Backport #55330: quincy: [test] add_event_after() expects an externally-provided mutex to be held added
Actions #8

Updated by Ilya Dryomov almost 2 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF