-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/26885/
-----------------------------------------------------------

Review request for kafka.


Bugs: KAFKA-1642
    https://issues.apache.org/jira/browse/KAFKA-1642


Repository: kafka


Description
-------

Fixes two issues with computation of poll timeouts in Sender/RecordAccumulator. 
First, the timeout
was being computed by RecordAccumulator as it looked up which nodes had data to 
send, but the timeout
cannot be computed until after nodes that aren't ready for sending are filtered 
since this could
result in a node that is currently unreachable always returning a timeout of 0 
and triggering a busy
loop. The fixed version computes per-node timeouts and only computes the final 
timeout after nodes
that aren't ready for sending are removed.

Second, timeouts were only being computed based on the first TopicAndPartition 
encountered for each
node. This could result in incorrect timeouts if the first encountered didn't 
have the minimum
timeout for that node. This now evaluates every TopicAndPartition with a known 
leader and takes the
minimum.


Diffs
-----

  
clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java
 c5d470011d334318d5ee801021aadd0c000974a6 
  clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java 
8ebe7ed82c9384b71ce0cc3ddbef2c2325363ab9 
  
clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java
 0762b35abba0551f23047348c5893bb8c9acff14 

Diff: https://reviews.apache.org/r/26885/diff/


Testing
-------


Thanks,

Ewen Cheslack-Postava

Reply via email to