kehu created KAFKA-8171: --------------------------- Summary: 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
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. -- This message was sent by Atlassian JIRA (v7.6.3#76005)