@Override
  public final void postSetUp() throws Exception {
    final Host host = Host.getHost(0);
    // Server1 VM
    server1 = host.getVM(0);

    // Server2 VM
    server2 = host.getVM(1);

    // Client 1 VM
    client1 = host.getVM(2);

    // client 2 VM
    client2 = host.getVM(3);

    // System.setProperty())
    int PORT1 =
        server1.invoke(HABugInPutDUnitTest::createServerCache);
    int PORT2 =
        server2.invoke(HABugInPutDUnitTest::createServerCache);

    client1.invoke(() -> HABugInPutDUnitTest.createClientCache(NetworkUtils.getServerHostName(host),
        PORT1, PORT2));
    client2.invoke(() -> HABugInPutDUnitTest.createClientCache(NetworkUtils.getServerHostName(host),
        PORT1, PORT2));
  }
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