]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: fix tick() session locking
authorSage Weil <sage@redhat.com>
Fri, 10 Oct 2014 23:36:40 +0000 (16:36 -0700)
committerSage Weil <sage@redhat.com>
Fri, 10 Oct 2014 23:36:40 +0000 (16:36 -0700)
We need to take the session read lock before traversing the ops lists.

Fixes: #9706
Signed-off-by: Sage Weil <sage@redhat.com>
src/osdc/Objecter.cc

index a2c4ddb33d2d551cceecb564be05f4fe4569179c..e56ec7d627b14e7ed2efc06de1288e8aaf0504a3 100644 (file)
@@ -1563,6 +1563,7 @@ void Objecter::tick()
     laggy_ops = 0;
     for (map<int,OSDSession*>::iterator siter = osd_sessions.begin(); siter != osd_sessions.end(); ++siter) {
       OSDSession *s = siter->second;
+      RWLock::RLocker l(s->lock);
       for (map<ceph_tid_t,Op*>::iterator p = s->ops.begin();
            p != s->ops.end();
            ++p) {