This is an automated email from the ASF dual-hosted git repository.
ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new d46219739f IGNITE-23456 Fix RetryLimitPolicy behavior (#4657)
d46219739f is described below
commit d46219739f3b94a8513c047d8fa14c913b75fc2f
Author: Pavel Tupitsyn <[email protected]>
AuthorDate: Wed Oct 30 19:15:55 2024 +0200
IGNITE-23456 Fix RetryLimitPolicy behavior (#4657)
It was not possible to disable retries previously, 0 meant infinite retries
and 1 meant 1 retry. Some tests were using incorrect values.
Change to:
* -1 for infinite retries
* 0 for disabled retries
* N for max N retries
---
.../java/org/apache/ignite/client/RetryLimitPolicy.java | 8 ++++++--
.../test/java/org/apache/ignite/client/ConnectionTest.java | 13 +++++++------
.../java/org/apache/ignite/client/DataStreamerTest.java | 5 ++---
.../test/java/org/apache/ignite/client/HeartbeatTest.java | 2 +-
.../java/org/apache/ignite/client/SchemaUpdateTest.java | 2 +-
.../internal/streamer/ItClientDataStreamerLoadTest.java | 2 +-
6 files changed, 18 insertions(+), 14 deletions(-)
diff --git
a/modules/client/src/main/java/org/apache/ignite/client/RetryLimitPolicy.java
b/modules/client/src/main/java/org/apache/ignite/client/RetryLimitPolicy.java
index 2519344826..19b2d4fa7d 100644
---
a/modules/client/src/main/java/org/apache/ignite/client/RetryLimitPolicy.java
+++
b/modules/client/src/main/java/org/apache/ignite/client/RetryLimitPolicy.java
@@ -39,7 +39,7 @@ public class RetryLimitPolicy implements RetryPolicy {
}
/**
- * Sets the retry limit. 0 or less for no limit.
+ * Sets the retry limit. 0 for no retries. -1 or less for unlimited
retries.
*
* @return this instance.
*/
@@ -54,7 +54,11 @@ public class RetryLimitPolicy implements RetryPolicy {
public boolean shouldRetry(RetryPolicyContext context) {
Objects.requireNonNull(context);
- if (retryLimit <= 0) {
+ if (retryLimit == 0) {
+ return false;
+ }
+
+ if (retryLimit < 0) {
return true;
}
diff --git
a/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
b/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
index d9e5f26d90..44ad102909 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/ConnectionTest.java
@@ -96,12 +96,13 @@ public class ConnectionTest extends AbstractClientTest {
@SuppressWarnings("ThrowableNotThrown")
@Test
public void testNoResponseFromServerWithinConnectTimeoutThrowsException() {
- Function<Integer, Integer> responseDelay = x -> 500;
+ // Delay should be more than TimeoutWorker#sleepInterval.
+ Function<Integer, Integer> responseDelay = x -> 1000;
- try (var srv = new TestServer(300, new FakeIgnite(), x -> false,
responseDelay, null, UUID.randomUUID(), null, null)) {
+ try (var srv = new TestServer(3000, new FakeIgnite(), x -> false,
responseDelay, null, UUID.randomUUID(), null, null)) {
Builder builder = IgniteClient.builder()
.addresses("127.0.0.1:" + srv.port())
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.connectTimeout(50);
assertThrowsWithCause(builder::build, TimeoutException.class);
@@ -117,7 +118,7 @@ public class ConnectionTest extends AbstractClientTest {
try (var srv = new TestServer(300, new FakeIgnite(), x -> false,
responseDelay, null, UUID.randomUUID(), null, null)) {
Builder builder = IgniteClient.builder()
.addresses("127.0.0.1:" + srv.port())
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.operationTimeout(30);
try (IgniteClient client = builder.build()) {
@@ -141,7 +142,7 @@ public class ConnectionTest extends AbstractClientTest {
Builder clientBuilder = IgniteClient.builder()
.addresses("127.0.0.1:" + testServer.port())
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.connectTimeout(500);
assertThrowsWithCause(
@@ -169,7 +170,7 @@ public class ConnectionTest extends AbstractClientTest {
Builder clientBuilder = IgniteClient.builder()
.addresses("127.0.0.1:" + testServer.port())
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.connectTimeout(30_000);
CountDownLatch syncLatch = new CountDownLatch(1);
diff --git
a/modules/client/src/test/java/org/apache/ignite/client/DataStreamerTest.java
b/modules/client/src/test/java/org/apache/ignite/client/DataStreamerTest.java
index 445d0e2979..a4813fb9f0 100644
---
a/modules/client/src/test/java/org/apache/ignite/client/DataStreamerTest.java
+++
b/modules/client/src/test/java/org/apache/ignite/client/DataStreamerTest.java
@@ -227,10 +227,9 @@ public class DataStreamerTest extends
AbstractClientTableTest {
Function<Integer, Boolean> shouldDropConnection = idx -> idx % 5 == 4;
var ignite2 = startTestServer2(shouldDropConnection, idx -> 0);
- // Streamer has it's own retry policy, so we can disable retries on
the client.
Builder builder = IgniteClient.builder()
.addresses("localhost:" + testServer2.port())
- .retryPolicy(new RetryLimitPolicy().retryLimit(0))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(8))
.reconnectThrottlingPeriod(0)
.loggerFactory(new ConsoleLoggerFactory("client-2"));
@@ -308,7 +307,7 @@ public class DataStreamerTest extends
AbstractClientTableTest {
Builder builder = IgniteClient.builder()
.addresses("localhost:" + testServer2.port())
.loggerFactory(logger)
- .retryPolicy(new RetryLimitPolicy().retryLimit(1));
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0));
client2 = builder.build();
RecordView<Tuple> view = defaultTableView(ignite2, client2);
diff --git
a/modules/client/src/test/java/org/apache/ignite/client/HeartbeatTest.java
b/modules/client/src/test/java/org/apache/ignite/client/HeartbeatTest.java
index 28e9ad9cf4..35259d0612 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/HeartbeatTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/HeartbeatTest.java
@@ -93,7 +93,7 @@ public class HeartbeatTest extends BaseIgniteAbstractTest {
Builder builder = IgniteClient.builder()
.addresses("127.0.0.1:" + srvPort)
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.heartbeatTimeout(30)
.reconnectThrottlingPeriod(5000)
.reconnectThrottlingRetries(0)
diff --git
a/modules/client/src/test/java/org/apache/ignite/client/SchemaUpdateTest.java
b/modules/client/src/test/java/org/apache/ignite/client/SchemaUpdateTest.java
index d455b845d4..49b839b0e8 100644
---
a/modules/client/src/test/java/org/apache/ignite/client/SchemaUpdateTest.java
+++
b/modules/client/src/test/java/org/apache/ignite/client/SchemaUpdateTest.java
@@ -100,7 +100,7 @@ public class SchemaUpdateTest extends
BaseIgniteAbstractTest {
.addresses("127.0.0.1:" + server.port())
.metricsEnabled(true)
.loggerFactory(new TestLoggerFactory("client"))
- .retryPolicy(new RetryLimitPolicy().retryLimit(0))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(-1))
.build();
}
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/streamer/ItClientDataStreamerLoadTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/streamer/ItClientDataStreamerLoadTest.java
index 1699f18f99..4ff1a1abf2 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/streamer/ItClientDataStreamerLoadTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/streamer/ItClientDataStreamerLoadTest.java
@@ -66,7 +66,7 @@ public final class ItClientDataStreamerLoadTest extends
ClusterPerClassIntegrati
.addresses("localhost")
.heartbeatInterval(1000)
.heartbeatTimeout(2000)
- .retryPolicy(new RetryLimitPolicy().retryLimit(1))
+ .retryPolicy(new RetryLimitPolicy().retryLimit(0))
.build();
}
}