@Override
      public void run() {
        Distribution mmgr = MembershipManagerHelper.getDistribution(system);

        // check for shutdown cause in Distribution. Following call should
        // throw DistributedSystemDisconnectedException which should have cause as
        // ForceDisconnectException.
        await().until(() -> !mmgr.getMembership().isConnected());
        await().untilAsserted(() -> {
          Throwable cause = mmgr.getShutdownCause();
          assertThat(cause).isInstanceOf(ForcedDisconnectException.class);
        });
        try (IgnoredException i = addIgnoredException("Membership: requesting removal of")) {
          mmgr.requestMemberRemoval((InternalDistributedMember) mem1, "test reasons");
          fail("It should have thrown exception in requestMemberRemoval");
        } catch (DistributedSystemDisconnectedException e) {
          // expected
          assertThat(e.getCause()).isInstanceOf(ForcedDisconnectException.class);
        } finally {
          hook.reset();
        }
      }
test lead member failure and normal coordinator shutdown with network partition detection
enabled.
<p>
Start one locators with admin distributed systems, then start two regular distributed members.
<p>
We kill the lead member and demonstrate that the other members continue to operate normally.
<p>
We then shut down the group coordinator and observe the second locator pick up the job and the
remaining member continues to operate normally.
geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java