mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
Revert "gossip: Make bootstrap more robust"
This reverts commitb56ba02335. After commit8fa35d6ddf(messaging_service: Get rid of timeout and retry logic for streaming verb), streaming verb in rpc does not check if a node is in gossip memebership since all the retry logic is removed. Remove the extra wait before removing the joining node from gossip membership. Message-Id: <a416a735bb8aad533bbee190e3324e6b16799415.1504063598.git.asias@scylladb.com> (cherry picked from commitcc18da5640)
This commit is contained in:
@@ -515,26 +515,12 @@ void gossiper::do_status_check() {
|
||||
|
||||
// check if this is a fat client. fat clients are removed automatically from
|
||||
// gossip after FatClientTimeout. Do not remove dead states here.
|
||||
if (is_gossip_only_member(endpoint) && !_just_removed_endpoints.count(endpoint)) {
|
||||
auto diff = now - ep_state.get_update_timestamp();
|
||||
auto timeout = fat_client_timeout;
|
||||
auto status = get_gossip_status(ep_state);
|
||||
if (status == sstring(versioned_value::STATUS_BOOTSTRAPPING)) {
|
||||
// The bootstrapping node will be a gossip only member, until
|
||||
// the streaming finishes and the node becomes NORMAL state.
|
||||
// If during this time, the bootstrapping node is overwhelmed
|
||||
// with streaming, it is possible the node will delay the
|
||||
// update the gossip heartbeat. Be forgiving for the
|
||||
// bootstrapping node and do not remove it from gossip too
|
||||
// fast. Otherwise, streaming rpc verbs will not be resent
|
||||
// becasue the node is not in gossip membership anymore.
|
||||
timeout = 10 * fat_client_timeout;
|
||||
}
|
||||
if (diff > timeout) {
|
||||
logger.info("FatClient {} has been silent for {}ms, removing from gossip, status = {}", endpoint, timeout.count(), status);
|
||||
remove_endpoint(endpoint); // will put it in _just_removed_endpoints to respect quarantine delay
|
||||
evict_from_membership(endpoint); // can get rid of the state immediately
|
||||
}
|
||||
if (is_gossip_only_member(endpoint)
|
||||
&& !_just_removed_endpoints.count(endpoint)
|
||||
&& ((now - ep_state.get_update_timestamp()) > fat_client_timeout)) {
|
||||
logger.info("FatClient {} has been silent for {}ms, removing from gossip", endpoint, fat_client_timeout.count());
|
||||
remove_endpoint(endpoint); // will put it in _just_removed_endpoints to respect quarantine delay
|
||||
evict_from_membership(endpoint); // can get rid of the state immediately
|
||||
}
|
||||
|
||||
// check for dead state removal
|
||||
|
||||
Reference in New Issue
Block a user