[ https://issues.apache.org/jira/browse/KAFKA-16639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17842099#comment-17842099 ]
Chia-Ping Tsai commented on KAFKA-16639: ---------------------------------------- check the code again. It seems there are two possible bugs if we change the state to `LEAVING` before receiving the heartbeat response 1. https://github.com/apache/kafka/commit/8c0488b887be4a9178563f1d72514010f83b8614 ignore the response and leave the member id be empty. That obstructs from leaving the group as server will reject the request (epoch=-1 and member is empty) 2. https://github.com/apache/kafka/blob/636e65aa6b3558a7ae239ce69579b62ab3377fcb/clients/src/main/java/org/apache/kafka/clients/consumer/internals/HeartbeatRequestManager.java#L212 could ignore the request due to in-flight request. > AsyncKafkaConsumer#close does not send heartbeat to leave group > --------------------------------------------------------------- > > Key: KAFKA-16639 > URL: https://issues.apache.org/jira/browse/KAFKA-16639 > Project: Kafka > Issue Type: Bug > Components: clients, consumer > Reporter: Chia-Ping Tsai > Assignee: Philip Nee > Priority: Major > Labels: kip-848-client-support > > This bug can be reproduced by immediately closing a consumer which is just > created. > The root cause is that we skip the new heartbeat used to leave group when > there is a in-flight heartbeat request > ([https://github.com/apache/kafka/blob/5de5d967adffd864bad3ec729760a430253abf38/clients/src/main/java/org/apache/kafka/clients/consumer/internals/HeartbeatRequestManager.java#L212).] > It seems to me the simple solution is that we create a heartbeat request when > meeting above situation and then send it by pollOnClose > ([https://github.com/apache/kafka/blob/5de5d967adffd864bad3ec729760a430253abf38/clients/src/main/java/org/apache/kafka/clients/consumer/internals/RequestManager.java#L62).] > -- This message was sent by Atlassian Jira (v8.20.10#820010)