[ 
https://issues.apache.org/jira/browse/KAFKA-3228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15722362#comment-15722362
 ] 

Ismael Juma commented on KAFKA-3228:
------------------------------------

Thanks for confirming. I removed the fix version to avoid having duplicates in 
the release notes, it's enough to have the issue that has the "Fixed" 
resolution.

> Partition reassignment failure for brokers freshly added to cluster
> -------------------------------------------------------------------
>
>                 Key: KAFKA-3228
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3228
>             Project: Kafka
>          Issue Type: Bug
>          Components: controller
>    Affects Versions: 0.8.2.1
>            Reporter: Andrew Olson
>            Assignee: Neha Narkhede
>
> After adding about new 20 brokers to double the size of an existing 
> production Kafka deployment, when attempting to rebalance partitions we were 
> initially unable to reassign any partitions to 5 of the 20. There was no 
> problem with the other 15. The controller broker logged error messages like:
> {noformat}
> ERROR kafka.controller.KafkaController: [Controller 19]: Error completing 
> reassignment of partition [TOPIC-NAME,2]
> kafka.common.KafkaException: Only 4,33 replicas out of the new set of 
> replicas 4,34,33 for partition [TOPIC-NAME,2]
> to be reassigned are alive. Failing partition reassignment
>       at 
> kafka.controller.KafkaController.initiateReassignReplicasForTopicPartition(KafkaController.scala:611)
>       at 
> kafka.controller.PartitionsReassignedListener$$anonfun$handleDataChange$4$$anonfun$apply$6.apply$mcV$sp(KafkaController.scala:1203)
>       at 
> kafka.controller.PartitionsReassignedListener$$anonfun$handleDataChange$4$$anonfun$apply$6.apply(KafkaController.scala:1197)
>       at 
> kafka.controller.PartitionsReassignedListener$$anonfun$handleDataChange$4$$anonfun$apply$6.apply(KafkaController.scala:1197)
>       at kafka.utils.Utils$.inLock(Utils.scala:535)
>       at 
> kafka.controller.PartitionsReassignedListener$$anonfun$handleDataChange$4.apply(KafkaController.scala:1196)
>       at 
> kafka.controller.PartitionsReassignedListener$$anonfun$handleDataChange$4.apply(KafkaController.scala:1195)
>       at 
> scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:224)
>       at 
> scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:403)
>       at 
> kafka.controller.PartitionsReassignedListener.handleDataChange(KafkaController.scala:1195)
>       at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:751)
>       at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
> {noformat}
> We reattempted the reassignment to one of these new brokers, with the same 
> result.
> We also saw these messages in the controller's log. There was a "Broken pipe" 
> error for each of the new brokers.
> {noformat}
> 2016-02-09 12:13:22,082 WARN kafka.controller.RequestSendThread: 
> [Controller-19-to-broker-34-send-thread],
> Controller 19 epoch 28 fails to send request Name:UpdateMetadataRequest...
> java.io.IOException: Broken pipe
>       at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
>       at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
>       at sun.nio.ch.IOUtil.write(IOUtil.java:148)
>       at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
>       at java.nio.channels.SocketChannel.write(SocketChannel.java:502)
>       at 
> kafka.network.BoundedByteBufferSend.writeTo(BoundedByteBufferSend.scala:56)
>       at kafka.network.Send$class.writeCompletely(Transmission.scala:75)
>       at 
> kafka.network.BoundedByteBufferSend.writeCompletely(BoundedByteBufferSend.scala:26)
>       at kafka.network.BlockingChannel.send(BlockingChannel.scala:103)
>       at 
> kafka.controller.RequestSendThread.liftedTree1$1(ControllerChannelManager.scala:132)
>       at 
> kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:131)
>       at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
> {noformat}
> {noformat}
> WARN kafka.controller.RequestSendThread: 
> [Controller-19-to-broker-34-send-thread],
> Controller 19 epoch 28 fails to send request Name:UpdateMetadataRequest... to 
> broker id:34...
> Reconnecting to broker.
> java.io.EOFException: Received -1 when reading from channel, socket has 
> likely been closed.
>       at kafka.utils.Utils$.read(Utils.scala:381)
>       at 
> kafka.network.BoundedByteBufferReceive.readFrom(BoundedByteBufferReceive.scala:54)
>       at kafka.network.Receive$class.readCompletely(Transmission.scala:56)
>       at 
> kafka.network.BoundedByteBufferReceive.readCompletely(BoundedByteBufferReceive.scala:29)
>       at kafka.network.BlockingChannel.receive(BlockingChannel.scala:111)
>       at 
> kafka.controller.RequestSendThread.liftedTree1$1(ControllerChannelManager.scala:133)
>       at 
> kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:131)
>       at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60)
> {noformat}
> {noformat}
> INFO kafka.controller.RequestSendThread: 
> [Controller-19-to-broker-34-send-thread], Controller 19 connected
> to id:34... for sending state change requests
> {noformat}
> There were no error messages in the new broker log files, just the normal 
> startup logs. A jstack did not reveal anything unusual with the threads, and 
> using netstat the network connections looked normal.
> We're running version 0.8.2.1. The new brokers were simultaneously started  
> using a broadcast-style command. However we also had the same issue with a 
> different Kafka cluster after starting up the new brokers individually about 
> 30 seconds apart.
> After stopping and restarting the 5 problematic new brokers, the reassignment 
> was then successful, and they are now functioning normally.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to