[ https://issues.apache.org/jira/browse/CASSANDRA-19426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ling Mao updated CASSANDRA-19426: --------------------------------- Fix Version/s: 5.x > Fix Double Type issues in the Gossiper#maybeGossipToCMS > ------------------------------------------------------- > > Key: CASSANDRA-19426 > URL: https://issues.apache.org/jira/browse/CASSANDRA-19426 > Project: Cassandra > Issue Type: Improvement > Reporter: Ling Mao > Assignee: Ling Mao > Priority: Low > Fix For: 5.x > > > _*issue-1:*_ > if liveEndpoints.size()=unreachableEndpoints.size()=0; probability will be > {*}_Infinity_{*}. > randDbl <= probability will always be true, then sendGossip > _*issue-2:*_ > comparing two double is safe by using *<* or {*}>{*}. However missing > accuracy will happen if we compare the equality of two double by > intuition({*}={*}). For example: > {code:java} > double probability = 0.1; > double randDbl = 0.10000000000000001; // Slightly greater than probability > if (randDbl <= probability) > { > System.out.println("randDbl <= probability(always here)"); > } > else > { > System.out.println("randDbl > probability"); > } > {code} > A good example from: _*Gossiper#maybeGossipToUnreachableMember*_ > {code:java} > if (randDbl < prob) > { > sendGossip(message, Sets.filter(unreachableEndpoints.keySet(), > ep -> > !isDeadState(getEndpointStateMap().get(ep)))); > }{code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org