You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ismael Juma (JIRA)" <ji...@apache.org> on 2015/09/16 21:33:45 UTC

[jira] [Updated] (KAFKA-2545) SSLConsumerTest.testSeek fails with JDK8u60

     [ https://issues.apache.org/jira/browse/KAFKA-2545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ismael Juma updated KAFKA-2545:
-------------------------------
    Priority: Minor  (was: Blocker)

It turns out that this is a timing issue. For some reason when the test is run with JDK 8u60 on my laptop, it takes longer to complete the initial metadata refresh (maybe related to the TLS handshake). My desktop doesn't have the same issue. For the test to pass on my laptop, I need to set metadataFetchTimeout = 6000 when creating the producer. It fails quite consistently with anything less than that.

[~harsha_ch], what do you think, is it worth changing metadataFetchTimeout for producers to make the test less sensitive to timing issues?

> SSLConsumerTest.testSeek fails with JDK8u60
> -------------------------------------------
>
>                 Key: KAFKA-2545
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2545
>             Project: Kafka
>          Issue Type: Bug
>          Components: security
>         Environment: OS X 10.11
>            Reporter: Ismael Juma
>            Assignee: Ismael Juma
>            Priority: Minor
>             Fix For: 0.9.0.0
>
>
> This fails consistently for me with JDK8u60, but passes with JDK7u80. I don't know if this is a real problem with the implementation or just an issue with the test, but we need to investigate before the release.
> Stacktrace follows:
> {code}
> java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 3000 ms.
> 	at org.apache.kafka.clients.producer.KafkaProducer$FutureFailure.<init>(KafkaProducer.java:639)
> 	at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:406)
> 	at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:297)
> 	at kafka.api.SSLConsumerTest$$anonfun$1.apply(SSLConsumerTest.scala:212)
> 	at kafka.api.SSLConsumerTest$$anonfun$1.apply(SSLConsumerTest.scala:211)
> 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
> 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
> 	at scala.collection.immutable.Range.foreach(Range.scala:141)
> 	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
> 	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
> 	at kafka.api.SSLConsumerTest.sendRecords(SSLConsumerTest.scala:211)
> 	at kafka.api.SSLConsumerTest.testSeek(SSLConsumerTest.scala:144)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 3000 ms.
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)