You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by GitBox <gi...@apache.org> on 2021/07/23 00:24:11 UTC

[GitHub] [kafka] ableegoldman commented on a change in pull request #11111: KAFKA-13126: guard against overflow when computing `joinGroupTimeoutMs`

ableegoldman commented on a change in pull request #11111:
URL: https://github.com/apache/kafka/pull/11111#discussion_r675241237



##########
File path: clients/src/main/java/org/apache/kafka/clients/NetworkClientUtils.java
##########
@@ -60,17 +60,16 @@ public static boolean awaitReady(KafkaClient client, Node node, Time time, long
             throw new IllegalArgumentException("Timeout needs to be greater than 0");
         }
         long startTime = time.milliseconds();
-        long expiryTime = startTime + timeoutMs;
 
         if (isReady(client, node, startTime) ||  client.ready(node, startTime))
             return true;
 
         long attemptStartTime = time.milliseconds();
-        while (!client.isReady(node, attemptStartTime) && attemptStartTime < expiryTime) {
+        while (!client.isReady(node, attemptStartTime) && attemptStartTime - startTime < timeoutMs) {
             if (client.connectionFailed(node)) {
                 throw new IOException("Connection to " + node + " failed.");
             }
-            long pollTimeout = expiryTime - attemptStartTime;
+            long pollTimeout = (startTime - attemptStartTime) + timeoutMs;

Review comment:
       The `startTime` is set once at the beginning of the method while the `attemptStartTime` is initialized just before the first attempt and then updated again after every iteration. So the `attemptStartTime` is always greater than the `startTime` and therefore the quantity being added to the `timeoutMs` here is actually negative. 
   
   But I see how that's confusing, I'll refactor the expression to make this more clear




-- 
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-unsubscribe@kafka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org