CASSANDRA-19426: Fix Double Type issues in the Gossiper#maybeGossipToCMS

This commit is contained in:
maoling 2024-02-25 01:00:00 +08:00
parent ec9a553f7d
commit eecf5e6464
1 changed files with 6 additions and 2 deletions

View File

@ -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);