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

index ba7cfa91f90b45ee935f0739fb3e9a9ad9312fe8..855bff85d34377684c42c4122f9ae8d248a3df32 100644 (file)
@@ -7155,9 +7155,11 @@ void ReplicatedPG::process_copy_chunk(hobject_t oid, ceph_tid_t tid, int r)
   // cancel and requeue proxy ops on this object
   if (!r) {
     for (map<ceph_tid_t, ProxyReadOpRef>::iterator it = proxyread_ops.begin();
-       it != proxyread_ops.end(); ++it) {
+       it != proxyread_ops.end();) {
       if (it->second->soid == cobc->obs.oi.soid) {
-       cancel_proxy_read(it->second);
+       cancel_proxy_read((it++)->second);
+      } else {
+       ++it;
       }
     }
     for (map<ceph_tid_t, ProxyWriteOpRef>::iterator it = proxywrite_ops.begin();