From: David Zafman Date: Sat, 5 Mar 2016 02:43:43 +0000 (-0800) Subject: common/TrackedOp: Missed locking when examining "events" X-Git-Tag: v10.1.1~105^2^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=be098c83143226e502a0587c9215cff941dbace1;p=ceph.git common/TrackedOp: Missed locking when examining "events" Another crash caused by a dump_ops_in_flight similar to #8885 Signed-off-by: David Zafman --- diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index 14ac32ea88f..b40c86ded49 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -193,6 +193,7 @@ public: } double get_duration() const { + Mutex::Locker l(lock); if (!events.empty() && events.rbegin()->second.compare("done") == 0) return events.rbegin()->first - get_initiated(); else @@ -201,6 +202,7 @@ public: void mark_event(const string &event); virtual const char *state_string() const { + Mutex::Locker l(lock); return events.rbegin()->second.c_str(); } void dump(utime_t now, Formatter *f) const;