]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG::process_copy_chunk: fix invalid list traversal for proxy_read 7511/head
authorSamuel Just <sjust@redhat.com>
Tue, 19 Jan 2016 18:24:31 +0000 (10:24 -0800)
committerSamuel Just <sjust@redhat.com>
Tue, 19 Jan 2016 18:26:40 +0000 (10:26 -0800)
Fixes: 14423
Backport: infernalis, hammer
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/ReplicatedPG.cc

index 855bff85d34377684c42c4122f9ae8d248a3df32..5bc5fe07cf15a39144812caf327f2eb8fb1a2b5b 100644 (file)
@@ -7163,9 +7163,11 @@ void ReplicatedPG::process_copy_chunk(hobject_t oid, ceph_tid_t tid, int r)
       }
     }
     for (map<ceph_tid_t, ProxyWriteOpRef>::iterator it = proxywrite_ops.begin();
-        it != proxywrite_ops.end(); ++it) {
+        it != proxywrite_ops.end();) {
       if (it->second->soid == cobc->obs.oi.soid) {
-       cancel_proxy_write(it->second);
+       cancel_proxy_write((it++)->second);
+      } else {
+       ++it;
       }
     }
     kick_proxy_ops_blocked(cobc->obs.oi.soid);