private void destroyMember(final ID member, final String reason) {

    // Make sure it is removed from the view
    latestViewWriteLock.lock();
    try {
      if (latestView.contains(member)) {
        latestView = latestView.createNewViewWithoutMember(member);
      }
      surpriseMembers.remove(member);
    } finally {
      latestViewWriteLock.unlock();
    }

    lifecycleListener.destroyMember(member, reason);
  }
Clean up and create consistent new view with member removed. No uplevel events are generated.
geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMembership.java