From: David Zafman Date: Sat, 5 Mar 2016 02:43:43 +0000 (-0800) Subject: common/TrackedOp: Missed locking when examining "events" X-Git-Tag: v0.94.10~11^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e8e7664247c7112f1ba03ce4cab915fe70ea5b8e;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 (cherry picked from commit be098c83143226e502a0587c9215cff941dbace1) Conflicts: src/common/TrackedOp.h (trivial) --- diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index fb21517d58f0c..dc2452f28f41a 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -182,6 +182,7 @@ public: } // This function maybe needs some work; assumes last event is completion time double get_duration() const { + Mutex::Locker l(lock); return events.empty() ? 0.0 : (events.rbegin()->first - get_initiated()); @@ -189,6 +190,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;