From: runsisi Date: Tue, 29 Mar 2016 12:26:21 +0000 (+0800) Subject: rbd-mirror: fix missing increment of iterators X-Git-Tag: v10.1.1~56^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=383d48be2fb2b389673cfe5d15a1104921219c9c;p=ceph-ci.git rbd-mirror: fix missing increment of iterators Signed-off-by: runsisi --- diff --git a/src/tools/rbd_mirror/Replayer.cc b/src/tools/rbd_mirror/Replayer.cc index 234a19cd1cb..ce76f99a57e 100644 --- a/src/tools/rbd_mirror/Replayer.cc +++ b/src/tools/rbd_mirror/Replayer.cc @@ -274,11 +274,15 @@ void Replayer::set_sources(const PoolImageIds &pool_image_ids) for (auto images_it = pool_images.begin(); images_it != pool_images.end();) { if (stop_image_replayer(images_it->second)) { - pool_images.erase(images_it++); - } + images_it = pool_images.erase(images_it); + } else { + ++images_it; + } } if (pool_images.empty()) { - m_images.erase(it++); + it = m_images.erase(it); + } else { + ++it; } continue; } @@ -289,7 +293,9 @@ void Replayer::set_sources(const PoolImageIds &pool_image_ids) auto &image_ids = pool_image_ids.at(pool_id); if (image_ids.find(ImageIds(images_it->first)) == image_ids.end()) { if (stop_image_replayer(images_it->second)) { - pool_images.erase(images_it++); + images_it = pool_images.erase(images_it); + } else { + ++images_it; } } else { ++images_it;