@Test
  public void testMetaDataCleanupOnMultiplePRNodeFail() throws Exception {
    createPartitionRegionsInAllVMs(uniqueName, 4, localMaxMemory, recoveryDelay, redundancy);

    addConfigListenerInAllVMs();

    // disconnect vm0
    InternalDistributedMember member0 = vms[0].invoke(this::disconnect);

    // validate that the metadata clean up is done at all the VM's for first failed node.
    vms[1].invoke(() -> validateNodeFailMetaDataCleanUp(member0));
    vms[2].invoke(() -> validateNodeFailMetaDataCleanUp(member0));
    vms[3].invoke(() -> validateNodeFailMetaDataCleanUp(member0));

    // validate that bucket2Node clean up is done at all the VM's for all failed nodes.
    vms[1].invoke(() -> validateNodeFailBucket2NodeCleanUp(member0));
    vms[2].invoke(() -> validateNodeFailBucket2NodeCleanUp(member0));
    vms[3].invoke(() -> validateNodeFailBucket2NodeCleanUp(member0));

    // Clear state of listener, skipping the vms[0] which was disconnected
    vms[1].invoke(this::clearConfigListenerState);
    vms[2].invoke(this::clearConfigListenerState);
    vms[3].invoke(this::clearConfigListenerState);

    // disconnect vm1
    InternalDistributedMember dsMember2 = vms[1].invoke(this::disconnect);

    // validate that the metadata clean up is done at all the VM's for first failed node.
    vms[2].invoke(() -> validateNodeFailMetaDataCleanUp(member0));
    vms[3].invoke(() -> validateNodeFailMetaDataCleanUp(member0));

    // validate that the metadata clean up is done at all the VM's for second failed node.
    vms[2].invoke(() -> validateNodeFailMetaDataCleanUp(dsMember2));
    vms[3].invoke(() -> validateNodeFailMetaDataCleanUp(dsMember2));

    vms[2].invoke(() -> validateNodeFailBucket2NodeCleanUp(dsMember2));
    vms[3].invoke(() -> validateNodeFailBucket2NodeCleanUp(dsMember2));
  }
Test for PartitionedRegion metadata cleanup for multiple node failure.<br>

(1)Creates 4 Vms<br>

(2)Randomly create different number of PartitionedRegion on all 4 VMs<br>

(3) Disconnect vm0 and vm1 from the distributed system<br>

(4) Validate all Failed node's config metadata<br>

(5) Validate all Failed node's bucket2Node Region metadata.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHAFailureAndRecoveryDUnitTest.java