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 )