From: Samuel Just Date: Tue, 19 Jan 2016 18:23:35 +0000 (-0800) Subject: ReplicatedPG::process_copy_chunk: fix invalid list traversal for proxy_write X-Git-Tag: v10.0.4~51^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=97ed425fe33fa6209d6d16b76acef25e62094f6d;p=ceph.git ReplicatedPG::process_copy_chunk: fix invalid list traversal for proxy_write Fixes: 14423 Backport: infernalis Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index ba7cfa91f90..855bff85d34 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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::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::iterator it = proxywrite_ops.begin();