@Override
  public void memberDeparted(DistributionManager distributionManager,
      final InternalDistributedMember id, final boolean crashed) {
    if (removeMember(id, true)) {
      synchronized (this) {
        if (departedMembers == null) {
          departedMembers = new HashSet<>();
        }
        departedMembers.add(id);
      }
    }
    checkIfDone();
  }
This method is invoked after a member has explicitly left the system. It may not get invoked if
a member becomes unreachable due to crash or network problems.
<p>
ReliableReplyProcessor21 overrides this to add the departed member to the departedMembers if we
haven't already received a reply from that member.
<p>
Note: race condition exists between membershipListener and processing of replies.
geode-core/src/main/java/org/apache/geode/distributed/internal/ReliableReplyProcessor21.java