You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2020/04/19 15:48:10 UTC

[curator] 01/01: CURATOR-559 test used InterProcessReadWriteLock - the problem is that the retry can end up in background loop which has its own thread thereby spoiling the test. Instead use a foreground operation for consistent tests

This is an automated email from the ASF dual-hosted git repository.

randgalt pushed a commit to branch CURATOR-559-fix-nested-retry-loops-reopen
in repository https://gitbox.apache.org/repos/asf/curator.git

commit 62cd345389eacb39623a67e383a4cf38c8921f39
Author: randgalt <ra...@apache.org>
AuthorDate: Sun Apr 19 10:47:57 2020 -0500

    CURATOR-559 test used InterProcessReadWriteLock - the problem is that the retry can end up in background loop which has its own thread thereby spoiling the test. Instead use a foreground operation for consistent tests
---
 .../apache/curator/connection/TestThreadLocalRetryLoop.java  | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/curator-recipes/src/test/java/org/apache/curator/connection/TestThreadLocalRetryLoop.java b/curator-recipes/src/test/java/org/apache/curator/connection/TestThreadLocalRetryLoop.java
index 16b345a..56362e6 100644
--- a/curator-recipes/src/test/java/org/apache/curator/connection/TestThreadLocalRetryLoop.java
+++ b/curator-recipes/src/test/java/org/apache/curator/connection/TestThreadLocalRetryLoop.java
@@ -22,7 +22,6 @@ import org.apache.curator.RetryPolicy;
 import org.apache.curator.RetrySleeper;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.framework.recipes.locks.InterProcessReadWriteLock;
 import org.apache.curator.framework.state.ConnectionState;
 import org.apache.curator.retry.RetryNTimes;
 import org.apache.curator.test.compatibility.CuratorTestBase;
@@ -46,7 +45,7 @@ public class TestThreadLocalRetryLoop extends CuratorTestBase
         try (CuratorFramework client = newClient(count))
         {
             prep(client);
-            doLock(client);
+            doOperation(client);
             Assert.assertEquals(count.get(), retryCount + 1);    // Curator's retry policy has been off by 1 since inception - we might consider fixing it someday
         }
     }
@@ -62,10 +61,10 @@ public class TestThreadLocalRetryLoop extends CuratorTestBase
             prep(client);
             for ( int i = 0; i < threadQty; ++i )
             {
-                executorService.submit(() -> doLock(client));
+                executorService.submit(() -> doOperation(client));
             }
             executorService.shutdown();
-            executorService.awaitTermination(timing.milliseconds(), TimeUnit.MILLISECONDS);
+            Assert.assertTrue(executorService.awaitTermination(timing.milliseconds(), TimeUnit.MILLISECONDS));
             Assert.assertEquals(count.get(), threadQty * (retryCount + 1));    // Curator's retry policy has been off by 1 since inception - we might consider fixing it someday
         }
     }
@@ -97,12 +96,11 @@ public class TestThreadLocalRetryLoop extends CuratorTestBase
         Assert.assertTrue(timing.awaitLatch(lostLatch));
     }
 
-    private Void doLock(CuratorFramework client) throws Exception
+    private Void doOperation(CuratorFramework client) throws Exception
     {
-        InterProcessReadWriteLock lock = new InterProcessReadWriteLock(client, "/test/lock");
         try
         {
-            lock.readLock().acquire();
+            client.checkExists().forPath("/hey");
             Assert.fail("Should have thrown an exception");
         }
         catch ( KeeperException ignore )