private void validateNoCacheServersRunning() throws IOException {
    Region<String, byte[]> region = cacheRule.getCache().getRegion(uniqueName);

    region.create("key1", new byte[16]);
    region.create("key2", new byte[16]);

    // Get the oplog handle & hence the underlying file & close it
    UninterruptibleFileChannel oplogFileChannel =
        ((LocalRegion) region).getDiskRegion().testHook_getChild().getFileChannel();
    oplogFileChannel.close();

    assertThatThrownBy(() -> region.put("key2", new byte[16]))
        .isInstanceOf(DiskAccessException.class);

    ((DiskRecoveryStore) region).getDiskStore().waitForClose();
    assertThat(region.getRegionService().isClosed()).isTrue();

    List<CacheServer> cacheServers = cacheRule.getCache().getCacheServers();
    assertThat(cacheServers).isEmpty();
  }
If IOException occurs while updating an entry in an already initialized DiskRegion, then the
cache server should be stopped.

<p>
TRAC #39079: Regions with persistence remain in use after IOException have occurred
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/InitializedDiskRegionWithIoExceptionRegressionTest.java