Nodes not part of cluster have marked the Gossip as seen, see #3031
* Problem may occur when joining member with same hostname:port again, after downing. * Reproduced with StressSpec exerciseJoinRemove with fixed port that joins and shutdown several times. * Real solution for this will be covered by ticket #2788 by adding uid to member identifier, but as first step we need to support this scenario with current design. * Use unique node identifier for vector clock to avoid mixup of old and new member instance. * Support transition from Down to Joining in Gossip merge * Don't gossip to unknown or unreachable members.
This commit is contained in:
parent
cab78e5174
commit
b349ad8d87
4 changed files with 28 additions and 8 deletions
|
|
@ -58,7 +58,8 @@ private[akka] class ClusterReadView(cluster: Cluster) extends Closeable {
|
|||
state = state.copy(members = state.members - member, unreachable = state.unreachable - member + member)
|
||||
case event: MemberEvent ⇒
|
||||
// replace current member with new member (might have different status, only address is used in equals)
|
||||
state = state.copy(members = state.members - event.member + event.member)
|
||||
state = state.copy(members = state.members - event.member + event.member,
|
||||
unreachable = state.unreachable - event.member)
|
||||
case LeaderChanged(leader) ⇒ state = state.copy(leader = leader)
|
||||
case s: CurrentClusterState ⇒ state = s
|
||||
case CurrentInternalStats(stats) ⇒ _latestStats = stats
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue