From: Kefu Chai Date: Fri, 23 Aug 2019 16:28:45 +0000 (+0800) Subject: common/condition_variable_debug: do not assert() if sloppy X-Git-Tag: v15.1.0~1766^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F29854%2Fhead;p=ceph.git 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 --- diff --git a/src/common/condition_variable_debug.cc b/src/common/condition_variable_debug.cc index a2ddd7691a7d..376fd12d4309 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()); }