[ https://issues.apache.org/jira/browse/KAFKA-4447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15696353#comment-15696353 ]
Json Tu edited comment on KAFKA-4447 at 11/25/16 5:40 PM: ---------------------------------------------------------- after review the code of kafka 0.9.0.0 and some new versions, maybe we can add one judgement at IsrChangeNotificationListener, PartitionsReassignedListener,PreferredReplicaElectionListener,ReassignedPartitionsIsrChangeListener to avoid these appearance. using IsrChangeNotificationListener as and example, in the handleChildChange function of IsrChangeNotificationListener, we may add it as below. inLock(controller.controllerContext.controllerLock) { if(null == controllerContext.controllerChannelManager) { return; } } the main reason for the judgement is to indicate that current broker is not active as a controller. was (Author: json tu): after review the code of kafka 0.9.0.0 and some new versions, maybe we can add one judgement at IsrChangeNotificationListener, PartitionsReassignedListener,PreferredReplicaElectionListener,ReassignedPartitionsIsrChangeListener to avoid these appearance. using IsrChangeNotificationListener as and example, in the handleChildChange function of IsrChangeNotificationListener, we may add it as below. inLock(controller.controllerContext.controllerLock) { if(null == controllerContext.controllerChannelManager) { return; } } > Controller resigned but it also acts as a controller for a long time > --------------------------------------------------------------------- > > Key: KAFKA-4447 > URL: https://issues.apache.org/jira/browse/KAFKA-4447 > Project: Kafka > Issue Type: Improvement > Components: controller > Affects Versions: 0.9.0.0, 0.9.0.1, 0.10.0.0, 0.10.0.1 > Environment: Linux Os > Reporter: Json Tu > Attachments: log.tar.gz > > > We have a cluster with 10 nodes,and we execute following operation as below. > 1.we execute some topic partition reassign from one node to other 9 nodes in > the cluster, and which triggered controller. > 2.controller invoke PartitionsReassignedListener's handleDataChange and read > all partition reassign rules from the zk path, and executed all > onPartitionReassignment for all partition that match conditions. > 3.but the controller is expired from zk, after what some nodes of 9 nodes > also expired from zk. > 5.then controller invoke onControllerResignation to resigned as the > controller. > we found after the controller is resigned, it acts as controller for about 3 > minutes, which can be found in my attachment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)