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

Jun Rao resolved KAFKA-2813.
----------------------------
    Resolution: Fixed

Issue resolved by pull request 501
[https://github.com/apache/kafka/pull/501]

> selector doesn't close socket connection on non-IOExceptions
> ------------------------------------------------------------
>
>                 Key: KAFKA-2813
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2813
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>            Reporter: Jun Rao
>            Assignee: Jun Rao
>            Priority: Blocker
>             Fix For: 0.9.0.0
>
>
> When running a system test, we saw lots of entries like the following. The 
> issue is that when the current leader switches to the follower, we will 
> truncate the log in the follower. It's possible there is a concurrent fetch 
> request being served at this moment. If this happens, we throw a 
> KafkaException when trying to send the fetch response (in FileMessageSet). 
> The exception will propagate through Selector.poll(). Selector catches 
> IOException and closes the corresponding socket. However, KafkaException is 
> not an IOException. Since the socket is not closed, Selector.poll() will keep 
> accessing the socket and keep getting the same error.
> [2015-11-11 07:25:01,150] ERROR Processor got uncaught exception. 
> (kafka.network.Processor)
> kafka.common.KafkaException: Size of FileMessageSet 
> /mnt/kafka-data-logs/test_topic-0/00000000000000000000.log has been truncated 
> during write: old size 16368, new size 0
>         at kafka.log.FileMessageSet.writeTo(FileMessageSet.scala:158)
>         at kafka.api.PartitionDataSend.writeTo(FetchResponse.scala:77)
>         at 
> org.apache.kafka.common.network.MultiSend.writeTo(MultiSend.java:81)
>         at kafka.api.TopicDataSend.writeTo(FetchResponse.scala:148)
>         at 
> org.apache.kafka.common.network.MultiSend.writeTo(MultiSend.java:81)
>         at kafka.api.FetchResponseSend.writeTo(FetchResponse.scala:291)
>         at 
> org.apache.kafka.common.network.KafkaChannel.send(KafkaChannel.java:165)
>         at 
> org.apache.kafka.common.network.KafkaChannel.write(KafkaChannel.java:152)
>         at org.apache.kafka.common.network.Selector.poll(Selector.java:301)
>         at kafka.network.Processor.run(SocketServer.scala:413)
>         at java.lang.Thread.run(Thread.java:745)



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

Reply via email to