divijvaidya commented on code in PR #12590: URL: https://github.com/apache/kafka/pull/12590#discussion_r968491064
########## clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java: ########## @@ -1933,11 +1941,76 @@ private Map<String, String> topicPartitionTags(TopicPartition tp) { } } + // Visible for testing + void maybeCloseFetchSessions(final Timer timer) { + final Cluster cluster = metadata.fetch(); + final List<RequestFuture<ClientResponse>> requestFutures = new ArrayList<>(); + for (final Map.Entry<Integer, FetchSessionHandler> entry : sessionHandlers.entrySet()) { + final FetchSessionHandler sessionHandler = entry.getValue(); + // set the session handler to notify close. This will set the next metadata request to send close message. + sessionHandler.notifyClose(); + final Integer fetchTargetNodeId = entry.getKey(); + + // Fet + final Node fetchTarget = cluster.nodeById(fetchTargetNodeId); + if (fetchTarget == null || client.isUnavailable(fetchTarget)) { + log.debug("Skip sending close session request to broker {} since it is not reachable", fetchTarget); + continue; + } + final RequestFuture<ClientResponse> responseFuture = sendFetchRequestToNode(sessionHandler.newBuilder().build(), fetchTarget); + responseFuture.addListener(new RequestFutureListener<ClientResponse>() { + @Override + public void onSuccess(ClientResponse value) { + log.info("Successfully sent a close message to {} for session {}", fetchTargetNodeId, sessionHandler.sessionId()); + } + + @Override + public void onFailure(RuntimeException e) { + log.warn("Unable to send a close message to {} for session {}. " + + "This may result in unnecessary fetch sessions at the broker.", fetchTargetNodeId, sessionHandler.sessionId(), e); Review Comment: Makes sense. I changed it to `info` in the latest commit. I still have `warn` left over in the other log statement (when the close times out). I have added a suggestion to the user in the warn message to increase the timeout. Please review that log statement and let me know whether that needs to change to `info` too. -- 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