[ https://issues.apache.org/jira/browse/KAFKA-8171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16837772#comment-16837772 ]
ASF GitHub Bot commented on KAFKA-8171: --------------------------------------- hachikuji commented on pull request #6515: KAFKA-8171: Set callback to null in addStopReplicaRequestForBrokers when replica … URL: https://github.com/apache/kafka/pull/6515 ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > callback needs to be null when addStopReplicaRequestForBrokers when replica > state transits to offline > ----------------------------------------------------------------------------------------------------- > > Key: KAFKA-8171 > URL: https://issues.apache.org/jira/browse/KAFKA-8171 > Project: Kafka > Issue Type: Bug > Components: controller > Reporter: kehu > Priority: Major > > Problem: > In ControllerChannelManager.sendRequestsToBrokers, for STOP_REPLICA requests, > it will try to group the requests based on deletePartition flag and callback: > val (replicasToGroup, replicasToNotGroup) = replicaInfoList.partition(r => > !r.deletePartition && r.callback == null) > When both conditions meet, controller is expected to send only one request to > destination broker. However, when adding the requests in ReplicaStateMachine, > it's putting in non-null callback (_,_)=>(). Therefore, replicasToGroup is > always empty and controller will always first sends an empty request followed > by #partitions requests. > > Fix: set the callback to null in addStopReplicaRequestForBrokers when replica > state transits to offline. PR has been created: > https://github.com/apache/kafka/pull/6515 -- This message was sent by Atlassian JIRA (v7.6.3#76005)