Stevo Slavic created KAFKA-3389: ----------------------------------- Summary: ReplicaStateMachine areAllReplicasForTopicDeleted check not handling well case when there are no replicas for topic Key: KAFKA-3389 URL: https://issues.apache.org/jira/browse/KAFKA-3389 Project: Kafka Issue Type: Bug Components: controller Affects Versions: 0.9.0.1 Reporter: Stevo Slavic Assignee: Neha Narkhede Priority: Minor
Line ReplicaStateMachine.scala#L285 {noformat} replicaStatesForTopic.forall(_._2 == ReplicaDeletionSuccessful) {noformat} which is return value of {{areAllReplicasForTopicDeleted}} function/check, probably should better be checking for {noformat} replicaStatesForTopic.isEmpty || replicaStatesForTopic.forall(_._2 == ReplicaDeletionSuccessful) {noformat} I noticed it because in controller logs I found entries like: {noformat} [2016-03-04 13:27:29,115] DEBUG [Replica state machine on controller 1]: Are all replicas for topic foo deleted Map() (kafka.controller.ReplicaStateMachine) {noformat} even though normally they look like: {noformat} [2016-03-04 09:33:41,036] DEBUG [Replica state machine on controller 1]: Are all replicas for topic foo deleted Map([Topic=foo,Partition=0,Replica=0] -> ReplicaDeletionStarted, [Topic=foo,Partition=0,Replica=3] -> ReplicaDeletionStarted, [Topic=foo,Partition=0,Replica=1] -> ReplicaDeletionSuccessful) (kafka.controller.ReplicaStateMachine) {noformat} This may cause topic deletion request never to be cleared from ZK even when topic has been deleted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)