Skip to content
This repository has been archived by the owner on Aug 23, 2023. It is now read-only.

race condition in cluster manger #535

Closed
woodsaj opened this issue Feb 21, 2017 · 0 comments
Closed

race condition in cluster manger #535

woodsaj opened this issue Feb 21, 2017 · 0 comments

Comments

@woodsaj
Copy link
Member

woodsaj commented Feb 21, 2017

if a node receives a LocalState update and a NotifyLeave message at the same time, a race condition exists resulting in the node that has left not being removed members map. This stale member information is then propagated through the cluster.

eg, assume a 3 node cluster. nodeA, nodeB, nodeC

  • nodeA leaves the cluster (normal shutdown)
  • nodeB initiates a push/pull sync with nodeC
  • nodeC responds with the LocalState payload before it processes the notifyLeave message from nodeA
  • nodeB processes the notifyLeave message, removing nodeA from the members table
  • nodeB processes the LocalState payload from nodeC, sees a new node called nodeA and adds it to its members table.
  • nodeC initiates a push/pull sync with nodeB
  • nodeB responds with the localState payload that includes nodeA as a member of the cluster
  • nodeC processes the localState payload and adds nodeA to its members table.
woodsaj pushed a commit that referenced this issue Feb 21, 2017
remove state transfer between nodes. fixes #535
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant