token_metadata: Do nothing if tokens is empty.

When replacing a node, we might ignore the tokens so that the tokens is
empty. In this case, we will have

   std::unordered_map<inet_address, std::unordered_set<token>> = {ip, {}}

passed to token_metadata::update_normal_tokens(std::unordered_map<inet_address,
std::unordered_set<token>>& endpoint_tokens)

and hit the assert

   assert(!tokens.empty());
This commit is contained in:
Asias He
2015-12-09 10:57:40 +08:00
parent e79c85964f
commit 1cc7887ffb

View File

@@ -81,6 +81,9 @@ void token_metadata::update_normal_token(token t, inet_address endpoint)
}
void token_metadata::update_normal_tokens(std::unordered_set<token> tokens, inet_address endpoint) {
if (tokens.empty()) {
return;
}
std::unordered_map<inet_address, std::unordered_set<token>> endpoint_tokens ({{endpoint, tokens}});
update_normal_tokens(endpoint_tokens);
}