From eecf5e64643edc166b79f36b3e9578407c4aa656 Mon Sep 17 00:00:00 2001 From: maoling Date: Sun, 25 Feb 2024 01:00:00 +0800 Subject: [PATCH] CASSANDRA-19426: Fix Double Type issues in the Gossiper#maybeGossipToCMS --- src/java/org/apache/cassandra/gms/Gossiper.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 21d4ab5b8f..d55ddf0bbe 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -844,9 +844,13 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean, if (cms.contains(getBroadcastAddressAndPort())) return; - double probability = cms.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size()); + int totalEndpoints = liveEndpoints.size() + unreachableEndpoints.size(); + if (totalEndpoints == 0) + return; + + double probability = cms.size() / (double) totalEndpoints; double randDbl = random.nextDouble(); - if (randDbl <= probability) + if (randDbl < probability) { logger.trace("Sending GossipDigestSyn to the CMS {}", cms); sendGossip(message, cms);