summaryrefslogtreecommitdiffstats
path: root/searchcore/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-07 16:23:25 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-03-07 16:23:25 +0000
commitb4390fc33db0a0aad5a6ac5f69fb4ff188d1c892 (patch)
treefe7e963aed14bffb7a80af9bc09c59fe13374dc0 /searchcore/src
parent0886472b33c603b5a67e3da4ba49f7a8e113a6fa (diff)
Erase failed movers, in common place.
Diffstat (limited to 'searchcore/src')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
index 28f5e3c7111..8b405a85bf8 100644
--- a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
@@ -251,9 +251,12 @@ BucketMoveJobV2::checkIfMoverComplete(const BucketMover & mover) {
bool needReschedule = mover.needReschedule();
if (bucketMoveComplete || needReschedule) {
BucketId bucket = mover.getBucket();
- assert(mover.needReschedule() || _bucketsInFlight.contains(bucket));
+ assert(needReschedule || _bucketsInFlight.contains(bucket));
_bucketsInFlight.erase(bucket);
if (needReschedule) {
+ _movers.erase(std::remove_if(_movers.begin(), _movers.end(),
+ [bucket](const BucketMoverSP &cand) { return cand->getBucket() == bucket; }),
+ _movers.end());
_postponedUntilSafe.insert(bucket);
} else {
_modifiedHandler.notifyBucketModified(bucket);
@@ -280,9 +283,6 @@ BucketMoveJobV2::cancelBucket(BucketId bucket) {
auto inFlight = _bucketsInFlight.find(bucket);
if (inFlight != _bucketsInFlight.end()) {
inFlight->second->cancel();
- _movers.erase(std::remove_if(_movers.begin(), _movers.end(),
- [bucket](const BucketMoverSP &mover) { return mover->getBucket() == bucket; }),
- _movers.end());
checkIfMoverComplete(*inFlight->second);
}
}