You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ne...@apache.org on 2013/03/27 21:29:34 UTC

git commit: KAFKA-830 partition replica assignment map in the controller should be a Set; reviewed by Jun Rao and Swapnil Ghike

Updated Branches:
  refs/heads/0.8 26c50fac4 -> c5e354d3a


KAFKA-830 partition replica assignment map in the controller should be a Set; reviewed by Jun Rao and Swapnil Ghike


Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/c5e354d3
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/c5e354d3
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/c5e354d3

Branch: refs/heads/0.8
Commit: c5e354d3ab8ee4f9d18da6c084d4abfb00911b7c
Parents: 26c50fa
Author: Neha Narkhede <ne...@gmail.com>
Authored: Wed Mar 27 13:29:18 2013 -0700
Committer: Neha Narkhede <ne...@gmail.com>
Committed: Wed Mar 27 13:29:18 2013 -0700

----------------------------------------------------------------------
 .../kafka/controller/ReplicaStateMachine.scala     |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kafka/blob/c5e354d3/core/src/main/scala/kafka/controller/ReplicaStateMachine.scala
----------------------------------------------------------------------
diff --git a/core/src/main/scala/kafka/controller/ReplicaStateMachine.scala b/core/src/main/scala/kafka/controller/ReplicaStateMachine.scala
index 5146f12..199640b 100644
--- a/core/src/main/scala/kafka/controller/ReplicaStateMachine.scala
+++ b/core/src/main/scala/kafka/controller/ReplicaStateMachine.scala
@@ -138,7 +138,8 @@ class ReplicaStateMachine(controller: KafkaController) extends Logging {
             case NewReplica =>
               // add this replica to the assigned replicas list for its partition
               val currentAssignedReplicas = controllerContext.partitionReplicaAssignment(topicAndPartition)
-              controllerContext.partitionReplicaAssignment.put(topicAndPartition, currentAssignedReplicas :+ replicaId)
+              if(!currentAssignedReplicas.contains(replicaId))
+                controllerContext.partitionReplicaAssignment.put(topicAndPartition, currentAssignedReplicas :+ replicaId)
               stateChangeLogger.trace("Controller %d epoch %d changed state of replica %d for partition %s to OnlineReplica"
                                         .format(controllerId, controller.epoch, replicaId, topicAndPartition))
             case _ =>