From a5b4460214792bab4d7952a067dab6ad298fc372 Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Mon, 28 Mar 2016 20:08:53 +0800 Subject: [PATCH] common: fix race during optracker switches between enabled/disabled mode The RWLock lock is made private to protect tracking_enabled changing but we are reading tracking_enabled beyond its protection during unregister_inflight_op(). So this is a slight race conditon. Signed-off-by: xie xingguo --- src/common/TrackedOp.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index edea8476cb4a..2554c0921edd 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -164,6 +164,7 @@ void OpTracker::unregister_inflight_op(TrackedOp *i) } i->_unregistered(); + RWLock::RLocker l(lock); if (!tracking_enabled) delete i; else { -- 2.47.3