You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by jj...@apache.org on 2014/08/06 01:00:31 UTC
[34/37] git commit: kafka-1571; MetadataTest hangs; patched by Jun Rao;
reviewed by Guozhang Wang
kafka-1571; MetadataTest hangs; patched by Jun Rao; reviewed by Guozhang Wang
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/1d2e776d
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/1d2e776d
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/1d2e776d
Branch: refs/heads/transactional_messaging
Commit: 1d2e776d8c4ffbe59e40985ecfc3b010d99519d1
Parents: f8d521a
Author: Jun Rao <ju...@gmail.com>
Authored: Mon Aug 4 21:19:49 2014 -0700
Committer: Jun Rao <ju...@gmail.com>
Committed: Mon Aug 4 21:19:49 2014 -0700
----------------------------------------------------------------------
.../apache/kafka/clients/producer/MetadataTest.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/1d2e776d/clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java
----------------------------------------------------------------------
diff --git a/clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java b/clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java
index 543304c..4547bfc 100644
--- a/clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java
+++ b/clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java
@@ -17,6 +17,7 @@ import static org.junit.Assert.assertTrue;
import org.apache.kafka.clients.producer.internals.Metadata;
import org.apache.kafka.common.Cluster;
+import org.apache.kafka.common.errors.TimeoutException;
import org.apache.kafka.test.TestUtils;
import org.junit.Test;
@@ -40,9 +41,7 @@ public class MetadataTest {
Thread t2 = asyncFetch(topic);
assertTrue("Awaiting update", t1.isAlive());
assertTrue("Awaiting update", t2.isAlive());
- // keep updating the metadata until no need to
- while (metadata.timeToNextUpdate(time) == 0)
- metadata.update(TestUtils.singletonCluster(topic, 1), time);
+ metadata.update(TestUtils.singletonCluster(topic, 1), time);
t1.join();
t2.join();
assertFalse("No update needed.", metadata.timeToNextUpdate(time) == 0);
@@ -53,8 +52,13 @@ public class MetadataTest {
private Thread asyncFetch(final String topic) {
Thread thread = new Thread() {
public void run() {
- while (metadata.fetch().partitionsForTopic(topic) == null)
- metadata.awaitUpdate(metadata.requestUpdate(), Long.MAX_VALUE);
+ while (metadata.fetch().partitionsForTopic(topic) == null) {
+ try {
+ metadata.awaitUpdate(metadata.requestUpdate(), refreshBackoffMs);
+ } catch(TimeoutException e) {
+ // let it go
+ }
+ }
}
};
thread.start();