Apurva Mehta created KAFKA-5079:
-----------------------------------

             Summary: ProducerBounceTest fails occasionally with a 
SocetTimeoutException
                 Key: KAFKA-5079
                 URL: https://issues.apache.org/jira/browse/KAFKA-5079
             Project: Kafka
          Issue Type: Bug
            Reporter: Apurva Mehta


{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
(v6.3.15#6346)

Reply via email to