mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-21 17:10:35 +00:00
1. storage_service: Make handle_state_left more robust when tokens are empty In case the tokens for the node to be removed from the cluster are empty, log the application_state of the leaving node to help understand why the tokens are empty and try to get the tokens from token_metadata. 2. token_metadata: Do not throw if empty tokens are passed to remove_bootstrap_tokens Gossip on_change callback calls storage_service::excise which calls remove_bootstrap_tokens to remove the tokens of the leaving node from bootstrap tokens. If empty tokens, e.g., due to gossip propagation issue as we saw in #6468, are passed to remove_bootstrap_tokens, it will throw. Since the on_change callback is marked as noexcept, such throw will cause the node to terminate which is an overkill. To avoid such error causing the whole cluster to down in worse cases, just log the tokens are empty passed to remove_bootstrap_tokens. Refs #6468