ra_server: Ignore #info_reply{}
from a node that is not part of cluster
#536
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why
Between the time a node asks for another node's information and the time it gets the reply, it is possible that this other node leaves the cluster for whatever reason.
This causes a crash of the Ra server that asked the information because it accesses the
cluster
map to get the state of the node that emitted the#info_reply{}
without checking first if the node is still part of the cluster (i.e., there is a key corresponding to that node in thecluster
map).To be exact, line 3651 raises a
badkey
exception:How
We simply ignore the
#info_reply{}
from a node that is not present in thecluster
map.