Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I encountered a scenario where controller keeps printing the following stack trace repeatedly for a finite set of partitions. Although I have not fully figured out the cause of this event, it seems that controller will update the reassignment znode even if the new data is same as existing data. This patch optimizes the controller behavior by only updating reassignment znode if it needs to change the reassignment znode data.
2017/09/12 20:34:05.842 [KafkaController] [Controller 1376005]: Error completing reassignment of partition [FederatorResultEvent,202]
kafka.common.KafkaException: Partition [FederatorResultEvent,202] to be reassigned is already assigned to replicas 1367001,1384010,1386010. Ignoring request for partition reassignment
at kafka.controller.KafkaController.initiateReassignReplicasForTopicPartition(KafkaController.scala:608) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.KafkaController$PartitionReassignment$$anonfun$process$14.apply(KafkaController.scala:1327) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.KafkaController$PartitionReassignment$$anonfun$process$14.apply(KafkaController.scala:1320) ~[kafka_2.10-0.11.0.9.jar:?]
at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:224) ~[scala-library-2.10.4.jar:?]
at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:403) ~[scala-library-2.10.4.jar:?]
at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:403) ~[scala-library-2.10.4.jar:?]
at kafka.controller.KafkaController$PartitionReassignment.process(KafkaController.scala:1320) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply$mcV$sp(ControllerEventManager.scala:53) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:53) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.ControllerEventManager$ControllerEventThread$$anonfun$doWork$1.apply(ControllerEventManager.scala:53) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:31) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.controller.ControllerEventManager$ControllerEventThread.doWork(ControllerEventManager.scala:52) ~[kafka_2.10-0.11.0.9.jar:?]
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:64) ~[kafka_2.10-0.11.0.9.jar:?]
Attachments
Issue Links
- links to