You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ma...@apache.org on 2019/03/11 14:19:22 UTC
[kafka] branch trunk updated: KAFKA-7939: Fix timing issue in
KafkaAdminClientTest.testCreateTopicsRetryBackoff
This is an automated email from the ASF dual-hosted git repository.
manikumar pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 173a7e3 KAFKA-7939: Fix timing issue in KafkaAdminClientTest.testCreateTopicsRetryBackoff
173a7e3 is described below
commit 173a7e3d54ede6616037d6c55057417dfeb44ab9
Author: Manikumar Reddy <ma...@gmail.com>
AuthorDate: Mon Mar 11 19:48:52 2019 +0530
KAFKA-7939: Fix timing issue in KafkaAdminClientTest.testCreateTopicsRetryBackoff
There is a small timing window where ```time.sleep(retryBackoff)``` will get executed before adminClient adds retry request to the queue. Added a check to wait until the retry call added to the queue in AdminClient.
Author: Manikumar Reddy <ma...@gmail.com>
Reviewers: Rajini Sivaram <ra...@googlemail.com>
Closes #6418 from omkreddy/KAFKA-7939
---
.../main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java | 5 +++++
.../java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java b/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java
index 606c816..317cd7c 100644
--- a/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java
+++ b/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java
@@ -1261,6 +1261,11 @@ public class KafkaAdminClient extends AdminClient {
return groupId == null;
}
+ //for testing
+ int numPendingCalls() {
+ return runnable.pendingCalls.size();
+ }
+
@Override
public CreateTopicsResult createTopics(final Collection<NewTopic> newTopics,
final CreateTopicsOptions options) {
diff --git a/clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java b/clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java
index 9e25034..af6f49b 100644
--- a/clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java
+++ b/clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java
@@ -352,6 +352,11 @@ public class KafkaAdminClientTest {
// Wait until the first attempt has failed, then advance the time
TestUtils.waitForCondition(() -> mockClient.numAwaitingResponses() == 1,
"Failed awaiting CreateTopics first request failure");
+
+ // Wait until the retry call added to the queue in AdminClient
+ TestUtils.waitForCondition(() -> ((KafkaAdminClient) env.adminClient()).numPendingCalls() == 1,
+ "Failed to add retry CreateTopics call");
+
time.sleep(retryBackoff);
future.get();