@Override
  public final void preTearDown() throws Exception {
    client1.invoke(HABugInPutDUnitTest::closeCache);
    client2.invoke(HABugInPutDUnitTest::closeCache);
    // close server
    server1.invoke(HABugInPutDUnitTest::closeCache);
    server2.invoke(HABugInPutDUnitTest::closeCache);
  }
This Dunit test is to verify the bug in put() operation. When the put is invoked on the server
and NotifyBySubscription is false then it follows normal path and then again calls put of region
on which region queue is based. so recurssion is happening.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HABugInPutDUnitTest.java