diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-07 16:23:25 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-07 16:23:25 +0000 |
commit | b4390fc33db0a0aad5a6ac5f69fb4ff188d1c892 (patch) | |
tree | fe7e963aed14bffb7a80af9bc09c59fe13374dc0 /searchcore | |
parent | 0886472b33c603b5a67e3da4ba49f7a8e113a6fa (diff) |
Erase failed movers, in common place.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp | 8 |
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); } } |