[ 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)