Fix race in UnreachableNodeRejoinsClusterSpec
This commit is contained in:
parent
6aa5f93f6e
commit
37826533d3
3 changed files with 13 additions and 6 deletions
|
|
@ -569,7 +569,6 @@ private[cluster] final class ClusterHeartbeatSenderWorker(
|
|||
|
||||
def receive = {
|
||||
case SendHeartbeat(heartbeatMsg, _, deadline) ⇒
|
||||
log.debug("Cluster Node [{}] - Heartbeat to [{}]", heartbeatMsg.from, toRef)
|
||||
if (!deadline.isOverdue) {
|
||||
// the CircuitBreaker will measure elapsed time and open if too many long calls
|
||||
try breaker.withSyncCircuitBreaker {
|
||||
|
|
@ -977,8 +976,8 @@ private[cluster] final class ClusterCore(cluster: Cluster) extends Actor with Ac
|
|||
joinInProgress = newJoinInProgress
|
||||
|
||||
// for all new joining nodes we remove them from the failure detector
|
||||
(latestGossip.members -- localGossip.members).filter(_.status == Joining).foreach {
|
||||
case node ⇒ cluster.failureDetector.remove(node.address)
|
||||
(latestGossip.members -- localGossip.members).filter(_.status == Joining).foreach { node ⇒
|
||||
cluster.failureDetector.remove(node.address)
|
||||
}
|
||||
|
||||
log.debug("Cluster Node [{}] - Receiving gossip from [{}]", selfAddress, from)
|
||||
|
|
@ -1250,7 +1249,9 @@ private[cluster] final class ClusterCore(cluster: Cluster) extends Actor with Ac
|
|||
val localMembers = localGossip.members
|
||||
val localUnreachableMembers = localGossip.overview.unreachable
|
||||
|
||||
val newlyDetectedUnreachableMembers = localMembers filterNot { member ⇒ cluster.failureDetector.isAvailable(member.address) }
|
||||
val newlyDetectedUnreachableMembers = localMembers filterNot { member ⇒
|
||||
member.address == selfAddress || cluster.failureDetector.isAvailable(member.address)
|
||||
}
|
||||
|
||||
if (newlyDetectedUnreachableMembers.nonEmpty) {
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue