The initial fix caused a problem that prevented election of a new
membership coordinator in a certain case.  The case was a view
with nodes [A, B, C, D, E] where C was the coordinator.  Node A had
crashed and the crash had been detected by B.  Node C then left the
cluster, sending a Leave message to B.  B's JoinLeave did not know about
the HealthMonitor's decision that A was crashed and did not become the
new coordinator.

This commit makes B's JoinLeave pay attention to the crashed-member set
in the HealthMonitor when deciding whether to become the membership
coordinator for the cluster.

Thank you for submitting a contribution to Apache Geode.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced in the 
commit message?

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically `develop`)?

- [ ] Is your initial contribution a single, squashed commit?

- [ ] Does `gradlew build` run cleanly?

- [ ] Have you written or updated unit tests to verify your changes?

- [ ] If adding new dependencies to the code, are these dependencies licensed 
in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and
submit an update to your PR as soon as possible. If you need help, please send 
an
email to [email protected].


[ Full content available at: https://github.com/apache/geode/pull/3132 ]
This message was relayed via gitbox.apache.org for 
[email protected]

Reply via email to