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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]