[
https://issues.apache.org/jira/browse/KAFKA-498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13450808#comment-13450808
]
Jun Rao commented on KAFKA-498:
-------------------------------
Thanks for the patch. Overall, a good cleanup patch. Some minor comments:
1. ControllerBrokerStateInfo: Should we include Broker in this class too?
2. ControllerChannelManager:
2.1 brokers.foreach(broker =>
brokerStateInfo(broker._1).requestSendThread.start()) can be done as
brokers.foreach{ case(brokerId, _) =>
brokerStateInfo(brokerId).requestSendThread.start() }
2.2 startup: Should call startRequestSendThread()
3. readLeaderAndIsrFromZookeeper:
3.1 This method also sends leaderAndISR requests to brokers, in addition to
reading from ZK. Maybe we can call it readAndSendLeaderAndIsrFromZookeeper?
3.2 If no replicas are assigned to a partition, is it necessary to log the
assignment for all partitions? Ditto for onBrokerChange
> Controller code has race conditions and synchronization bugs
> ------------------------------------------------------------
>
> Key: KAFKA-498
> URL: https://issues.apache.org/jira/browse/KAFKA-498
> Project: Kafka
> Issue Type: Bug
> Affects Versions: 0.8
> Reporter: Neha Narkhede
> Assignee: Neha Narkhede
> Labels: bugs
> Attachments: kafka-498-v1.patch, kafka-498-v2.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> The controller maintains some internal data structures that are updated by
> state changes triggered by zookeeper listeners. There are race conditions in
> the controller channel manager and the controller state machine.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira