You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Manikumar (JIRA)" <ji...@apache.org> on 2018/06/26 11:36:00 UTC

[jira] [Resolved] (KAFKA-5079) ProducerBounceTest fails occasionally with a SocketTimeoutException

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

Manikumar resolved KAFKA-5079.
------------------------------
    Resolution: Fixed

ProducerBounceTest is removed as part old consumer changes.

> ProducerBounceTest fails occasionally with a SocketTimeoutException
> -------------------------------------------------------------------
>
>                 Key: KAFKA-5079
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5079
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Apurva Mehta
>            Priority: Major
>
> {noformat}
> java.net.SocketTimeoutException
> 	at sun.nio.ch.SocketAdaptor$SocketInputStream.read(SocketAdaptor.java:229)
> 	at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103)
> 	at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:385)
> 	at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:85)
> 	at kafka.network.BlockingChannel.readCompletely(BlockingChannel.scala:129)
> 	at kafka.network.BlockingChannel.receive(BlockingChannel.scala:120)
> 	at kafka.consumer.SimpleConsumer.liftedTree1$1(SimpleConsumer.scala:100)
> 	at kafka.consumer.SimpleConsumer.kafka$consumer$SimpleConsumer$$sendRequest(SimpleConsumer.scala:84)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SimpleConsumer.scala:133)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:133)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1$$anonfun$apply$mcV$sp$1.apply(SimpleConsumer.scala:133)
> 	at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:32)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply$mcV$sp(SimpleConsumer.scala:132)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:132)
> 	at kafka.consumer.SimpleConsumer$$anonfun$fetch$1.apply(SimpleConsumer.scala:132)
> 	at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:32)
> 	at kafka.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:131)
> 	at kafka.api.ProducerBounceTest$$anonfun$2.apply(ProducerBounceTest.scala:116)
> 	at kafka.api.ProducerBounceTest$$anonfun$2.apply(ProducerBounceTest.scala:113)
> {noformat}
> This is expected occasionally, since the ports are preallocated and the brokers are bounced in quick succession. Here is the relevant comment from the code: 
> {noformat}
>   // This is the one of the few tests we currently allow to preallocate ports, despite the fact that this can result in transient
>   // failures due to ports getting reused. We can't use random ports because of bad behavior that can result from bouncing
>   // brokers too quickly when they get new, random ports. If we're not careful, the client can end up in a situation
>   // where metadata is not refreshed quickly enough, and by the time it's actually trying to, all the servers have
>   // been bounced and have new addresses. None of the bootstrap nodes or current metadata can get them connected to a
>   // running server.
>   //
>   // Since such quick rotation of servers is incredibly unrealistic, we allow this one test to preallocate ports, leaving
>   // a small risk of hitting errors due to port conflicts. Hopefully this is infrequent enough to not cause problems.
> {noformat}
> We should try to look into handling this exception better so that the test doesn't fail occasionally. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)