diff --git a/fdbserver/DataDistribution.actor.cpp b/fdbserver/DataDistribution.actor.cpp index 69f075e442..ef4b1c2bb5 100644 --- a/fdbserver/DataDistribution.actor.cpp +++ b/fdbserver/DataDistribution.actor.cpp @@ -2002,9 +2002,10 @@ ACTOR Future popOldTags( Database cx, Reference logSystem, Ver loop { try { state Future> fTagLocalities = tr.getRange( tagLocalityListKeys, CLIENT_KNOBS->TOO_MANY ); - state Future> fTags = tr.getRange( serverTagKeys, CLIENT_KNOBS->TOO_MANY, true); + state Future> fTags = tr.getRange( serverTagKeys, CLIENT_KNOBS->TOO_MANY ); + state Future> fHistoryTags = tr.getRange( serverTagHistoryKeys, CLIENT_KNOBS->TOO_MANY ); - Void _ = wait( success(fTagLocalities) && success(fTags) ); + Void _ = wait( success(fTagLocalities) && success(fTags) && success(fHistoryTags) ); state std::vector> popActors; state std::vector tags; @@ -2013,6 +2014,10 @@ ACTOR Future popOldTags( Database cx, Reference logSystem, Ver tags.push_back(decodeServerTagValue( kv.value )); } + for(auto& kv : fHistoryTags.get()) { + tags.push_back(decodeServerTagValue( kv.value )); + } + //FIXME: we have to check the old locality indefinately, because we can never be sure when pops have succeeded, we can remove this code when we no longer need to support upgrades from 5.X to 6.0 popActors.push_back(popOldTags(&tr, logSystem, recoveryCommitVersion, tagLocalityUpgraded, tags)); for(auto& kv : fTagLocalities.get()) { diff --git a/fdbserver/MoveKeys.actor.cpp b/fdbserver/MoveKeys.actor.cpp index ea76f6b750..131ef8d47f 100644 --- a/fdbserver/MoveKeys.actor.cpp +++ b/fdbserver/MoveKeys.actor.cpp @@ -797,6 +797,7 @@ ACTOR Future removeStorageServer( Database cx, UID serverID, MoveKeysLock tr.clear( serverListKeyFor(serverID) ); tr.clear( serverTagKeyFor(serverID) ); + tr.clear( serverTagHistoryRangeFor(serverID) ); retry = true; Void _ = wait( tr.commit() ); return Void();