]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/TrackedOp: Missed locking when examining "events"
authorDavid Zafman <dzafman@redhat.com>
Sat, 5 Mar 2016 02:43:43 +0000 (18:43 -0800)
committerDavid Zafman <dzafman@redhat.com>
Mon, 14 Mar 2016 22:49:45 +0000 (15:49 -0700)
Another crash caused by a dump_ops_in_flight similar to #8885

Signed-off-by: David Zafman <dzafman@redhat.com>
src/common/TrackedOp.h

index 14ac32ea88f043ffb82295642cc9f7b180aeb13c..b40c86ded4981c5546190267f85c9f2ddb2d947b 100644 (file)
@@ -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;