From 1cc7887ffbb21ee6fbad1fa106ff3f981153ef3d Mon Sep 17 00:00:00 2001 From: Asias He Date: Wed, 9 Dec 2015 10:57:40 +0800 Subject: [PATCH] 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> = {ip, {}} passed to token_metadata::update_normal_tokens(std::unordered_map>& endpoint_tokens) and hit the assert assert(!tokens.empty()); --- locator/token_metadata.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/locator/token_metadata.cc b/locator/token_metadata.cc index 2e27a7e32e..55ddcc5ea1 100644 --- a/locator/token_metadata.cc +++ b/locator/token_metadata.cc @@ -81,6 +81,9 @@ void token_metadata::update_normal_token(token t, inet_address endpoint) } void token_metadata::update_normal_tokens(std::unordered_set tokens, inet_address endpoint) { + if (tokens.empty()) { + return; + } std::unordered_map> endpoint_tokens ({{endpoint, tokens}}); update_normal_tokens(endpoint_tokens); }