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

Jiangjie Qin commented on KAFKA-3383:
-------------------------------------

[~junrao] I think the broker side bug has already been fixed in the trunk. 

The reason broker threw quota sensor exception was due to some mistake I made 
when cherry pick KAFKA-3310. Supposedly the broker should return an 
ProduceResponse with error code -1 using the version that the request was 
using. But the broker running at that time does not have KAFKA-2071 yet so it 
is still using the scala Produce Request/Response code, which seems always 
forming an error response with the latest version, in this case it is v1. 
Because the producer was actually sending v0 and don't understand the throttle 
time in the response yet, the producer parse failed.

After KAFKA-2071, I think the bug has been fixed because the broker will return 
the ProduceResponse in the same version as ProduceRequest.

> Producer should not remove an in flight request before successfully parsing 
> the response.
> -----------------------------------------------------------------------------------------
>
>                 Key: KAFKA-3383
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3383
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.9.0.0
>            Reporter: Jiangjie Qin
>            Assignee: chen zhu
>            Priority: Critical
>             Fix For: 0.10.0.0
>
>
> In the NetworkClient, we remove the in flight request before we successfully 
> parse the response. If the response parse failed, the request will not be 
> fulfilled but just lost. For a producer request, that means the callback of 
> the messages won't be fired forever.
> We should only remove the in flight request after response parsing succeeds.



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

Reply via email to