stanislavkozlovski commented on code in PR #15130: URL: https://github.com/apache/kafka/pull/15130#discussion_r1442734095
########## clients/src/test/java/org/apache/kafka/clients/NetworkClientTest.java: ########## @@ -560,6 +560,38 @@ public void testConnectionSetupTimeout() { "Expected the connections to fail due to the socket connection setup timeout"); } + @Test + public void testConnectionTimeoutAfterThrottling() { + awaitReady(client, node); + short requestVersion = PRODUCE.latestVersion(); + int timeoutMs = 1000; + ProduceRequest.Builder builder = new ProduceRequest.Builder( + requestVersion, + requestVersion, + new ProduceRequestData() + .setAcks((short) 1) + .setTimeoutMs(timeoutMs)); + TestCallbackHandler handler = new TestCallbackHandler(); + ClientRequest r1 = client.newClientRequest(node.idString(), builder, time.milliseconds(), true, + defaultRequestTimeoutMs, handler); + + client.send(r1, time.milliseconds()); + client.poll(0, time.milliseconds()); + + // Throttle long enough to ensure other inFlight requests timeout. + ProduceResponse pr = new ProduceResponse(new ProduceResponseData().setThrottleTimeMs(timeoutMs)); + ByteBuffer buffer = RequestTestUtils.serializeResponseWithHeader(pr, requestVersion, r1.correlationId()); + selector.delayedReceive(new DelayedReceive(node.idString(), new NetworkReceive(node.idString(), buffer))); + ClientRequest r2 = client.newClientRequest(node.idString(), builder, time.milliseconds(), true, + defaultRequestTimeoutMs, handler); + client.send(r2, time.milliseconds()); + time.sleep(timeoutMs); + client.poll(0, time.milliseconds()); + + assertEquals(1, client.inFlightRequestCount(node.idString())); + assertFalse(client.connectionFailed(node), "Connection failed after throttling."); Review Comment: ```suggestion assertFalse(client.connectionFailed(node), "Connection should not have failed due to the extra time spent throttling."); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org