[ https://issues.apache.org/jira/browse/KAFKA-5044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tommy Becker resolved KAFKA-5044. --------------------------------- Resolution: Invalid > max.in.flight.requests.per.connection > 1 is ineffective > -------------------------------------------------------- > > Key: KAFKA-5044 > URL: https://issues.apache.org/jira/browse/KAFKA-5044 > Project: Kafka > Issue Type: Bug > Components: clients > Reporter: Tommy Becker > > While looking at the NetworkClient code, I became suspicious about the > implementation of org.apache.kafka.clients.InFlightRequests#canSendMore, > which seems responsible for enforcing max.in.flight.requests.per.connection > {code} > public boolean canSendMore(String node) { > Deque<NetworkClient.InFlightRequest> queue = requests.get(node); > return queue == null || queue.isEmpty() || > (queue.peekFirst().send.completed() && queue.size() < > this.maxInFlightRequestsPerConnection); > } > {code} > If the most recent request has not been completed, then this returns false > even if we are under the maxInFlightRequestsPerConnection limit. I wonder if > I am misunderstanding how this parameter is supposed to work, as this code > has been there quite some time. But I wrote a unit test that tries to send a > second request with one outstanding and it does indeed fail, despite > maxInFlightRequestsPerConnection being set to Integer.MAX_VALUE. I'll create > a PR with my test and possible fix. -- This message was sent by Atlassian JIRA (v6.3.15#6346)