From 2a18b3bbd072a4ed2735f2c67e5d42a4d048f59c Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 24 Aug 2019 00:28:45 +0800 Subject: [PATCH] common/condition_variable_debug: do not assert() if sloppy replicate the behavior of `Cond::SloppySignal()` to avoid crash like ceph version Development (no_version) octopus (dev) 1: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 2: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 3: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 4: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 5: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 6: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 7: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 8: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 9: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd 10: at /home/jenkins/workspace/ceph-master36/build/bin/ceph-osd Signed-off-by: Kefu Chai --- src/common/condition_variable_debug.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/common/condition_variable_debug.cc b/src/common/condition_variable_debug.cc index a2ddd7691a7..376fd12d430 100644 --- a/src/common/condition_variable_debug.cc +++ b/src/common/condition_variable_debug.cc @@ -44,9 +44,11 @@ void condition_variable_debug::notify_one() void condition_variable_debug::notify_all(bool sloppy) { - // make sure signaler is holding the waiter's lock. - ceph_assert(waiter_mutex == NULL || - waiter_mutex->is_locked()); + if (!sloppy) { + // make sure signaler is holding the waiter's lock. + ceph_assert(waiter_mutex == NULL || + waiter_mutex->is_locked()); + } if (int r = pthread_cond_broadcast(&cond); r != 0 && !sloppy) { throw std::system_error(r, std::generic_category()); } -- 2.39.5