Hi all,
Hi took recent 5.8.0 release and some project tests were running really slow
compared with 5.7.1
I took a closer look and CuratorFramework.close method is really slow when ZK
server is stop.
I have included a test that makes reproduction easy
I am running Manjaro with OpenJDK 17
When test is running with Curator 5.7.1 closing Curator instance takes 1200
millisWhen test is running with Curator 5.8.0 closing Curator instance takes
20000 millis
Looks to me there is something wrong here, BUT wanted to double check with you.
Best regards,
Cheva
package com.cheva.grantor;
import static java.util.concurrent.TimeUnit.SECONDS;import static
org.junit.jupiter.api.Assertions.assertTrue;
import java.time.Duration;import java.time.Instant;
import org.apache.curator.framework.CuratorFramework;import
org.apache.curator.framework.CuratorFrameworkFactory;import
org.apache.curator.retry.RetryOneTime;import
org.apache.curator.test.BaseClassForTests;import org.junit.jupiter.api.Test;
class CuratorCloseSlow extends BaseClassForTests {
@Test void tesCuratorCloseSlow() throws Exception { Instant t0; try
(CuratorFramework cf =
CuratorFrameworkFactory.newClient(server.getConnectString(), new
RetryOneTime(1_000))) { cf.start();
assertTrue(cf.blockUntilConnected(2, SECONDS));
cf.create().forPath("/jejeje"); server.stop(); Thread.sleep(100L);
t0 = Instant.now(); } Instant t1 = Instant.now(); long
closeDurationMillis = Duration.between(t0, t1).toMillis();
System.out.println("Close Duration took " + closeDurationMillis + " secs");
assertTrue(closeDurationMillis < 2_000L); }}