You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jun Rao (JIRA)" <ji...@apache.org> on 2015/12/03 03:45:10 UTC

[jira] [Commented] (KAFKA-2938) Socket server may throw IllegalStateException

    [ https://issues.apache.org/jira/browse/KAFKA-2938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15037137#comment-15037137 ] 

Jun Rao commented on KAFKA-2938:
--------------------------------

[~becket_qin], can this actually happen? In SocketServer, we only process one request at a time from a given client. So before we completely send the response for a request, socket server won't take another request from the same socket. So, there should never be two outstanding responses for the same client. The producer can send multiple requests in flight, but they will just be queued up in the socket buffer on the broker.

> Socket server may throw IllegalStateException
> ---------------------------------------------
>
>                 Key: KAFKA-2938
>                 URL: https://issues.apache.org/jira/browse/KAFKA-2938
>             Project: Kafka
>          Issue Type: Bug
>          Components: network
>    Affects Versions: 0.9.0.0
>            Reporter: Jiangjie Qin
>            Assignee: Jiangjie Qin
>             Fix For: 0.9.0.1
>
>
> The Processor in SocketServer will try to drain all the responses in the response queue and pass them to selector for sending. 
> If there are more than one response in the response queue (e.g. a producer with max in flight request greater than 1), an IllegalStateException would be thrown because the processor will call selector.send() before the previous send is finished.



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