You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@kafka.apache.org by Mingmin Liu <di...@gmail.com> on 2014/05/17 05:06:57 UTC

[0.7.2] see ZkEventThread triggered when these is no broker change

see these errors in producer's log:


===
[2014-05-17 08:38:59,983] ERROR Error handling event ZkEvent[Children of
/brokers/topics/test_device_updates changed sent to kafka
.producer.ZKBrokerPartitionInfo$BrokerTopicsListener@1b0ec7cc]
(org.I0Itec.zkclient.ZkEventThread)
java.lang.NullPointerException
        at org.I0Itec.zkclient.ZkConnection.readData(ZkConnection.java:103)
        at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.java:770)
        at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.java:766)
        at
org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675)
        at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:766)
        at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:761)
        at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:750)
        at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:744)
        at kafka.utils.ZkUtils$.readData(ZkUtils.scala:162)
        at
kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply$mcII$sp(ZKBrokerPartitionInfo.scala:40)
        at
kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply(ZKBrokerPartitionInfo.scala:40)
        at
kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply(ZKBrokerPartitionInfo.scala:40)
        at
scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
        at
scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
        at
scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
        at scala.collection.immutable.List.foreach(List.scala:76)
        at
scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
        at scala.collection.immutable.List.map(List.scala:76)
        at
kafka.producer.ZKBrokerPartitionInfo$.kafka$producer$ZKBrokerPartitionInfo$$getBrokerPartitions(ZKBrokerPartitionInfo.s
cala:40)
        at kafka.producer.ZKBrokerPartitionInfo$BrokerTopicsListener.
processNewBrokerInExistingTopic(ZKBrokerPartitionInfo.scala:3
09)
        at kafka.producer.ZKBrokerPartitionInfo$BrokerTopicsListener.
handleChildChange(ZKBrokerPartitionInfo.scala:250)
        at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568)
        at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
[2014-05-17 09:21:39,558] ERROR Error handling event ZkEvent[Children of
/brokers/topics/test_mode_control changed sent to kafka.p
roducer.ZKBrokerPartitionInfo$BrokerTopicsListener@1b0ec7cc]
(org.I0Itec.zkclient.ZkEventThread)
java.lang.NullPointerException
        at org.I0Itec.zkclient.ZkConnection.exists(ZkConnection.java:95)
===


After looking at the code of *ZKBrokerPartitionInfo*, seems that this
handleChildChange
 will only be triggered when there is new broker added or removed from the
cluster, but we did not do that at that time, according to the monitoring,
we also didn't see any broker offline at that time.

so is there any other reason that will cause this error?

-- 
Best Regards

----------------------
刘明敏 | mmLiu

Re: [0.7.2] see ZkEventThread triggered when these is no broker change

Posted by Jun Rao <ju...@gmail.com>.
Do you see ZK session expiration in the log?

Thanks,

Jun


On Fri, May 16, 2014 at 8:06 PM, Mingmin Liu <di...@gmail.com>wrote:

> see these errors in producer's log:
>
>
> ===
> [2014-05-17 08:38:59,983] ERROR Error handling event ZkEvent[Children of
> /brokers/topics/test_device_updates changed sent to kafka
> .producer.ZKBrokerPartitionInfo$BrokerTopicsListener@1b0ec7cc]
> (org.I0Itec.zkclient.ZkEventThread)
> java.lang.NullPointerException
>         at org.I0Itec.zkclient.ZkConnection.readData(ZkConnection.java:103)
>         at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.java:770)
>         at org.I0Itec.zkclient.ZkClient$9.call(ZkClient.java:766)
>         at
> org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675)
>         at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:766)
>         at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:761)
>         at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:750)
>         at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:744)
>         at kafka.utils.ZkUtils$.readData(ZkUtils.scala:162)
>         at
>
> kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply$mcII$sp(ZKBrokerPartitionInfo.scala:40)
>         at
>
> kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply(ZKBrokerPartitionInfo.scala:40)
>         at
>
> kafka.producer.ZKBrokerPartitionInfo$$anonfun$1.apply(ZKBrokerPartitionInfo.scala:40)
>         at
>
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
>         at
>
> scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
>         at
>
> scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
>         at scala.collection.immutable.List.foreach(List.scala:76)
>         at
> scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
>         at scala.collection.immutable.List.map(List.scala:76)
>         at
>
> kafka.producer.ZKBrokerPartitionInfo$.kafka$producer$ZKBrokerPartitionInfo$$getBrokerPartitions(ZKBrokerPartitionInfo.s
> cala:40)
>         at kafka.producer.ZKBrokerPartitionInfo$BrokerTopicsListener.
> processNewBrokerInExistingTopic(ZKBrokerPartitionInfo.scala:3
> 09)
>         at kafka.producer.ZKBrokerPartitionInfo$BrokerTopicsListener.
> handleChildChange(ZKBrokerPartitionInfo.scala:250)
>         at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568)
>         at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
> [2014-05-17 09:21:39,558] ERROR Error handling event ZkEvent[Children of
> /brokers/topics/test_mode_control changed sent to kafka.p
> roducer.ZKBrokerPartitionInfo$BrokerTopicsListener@1b0ec7cc]
> (org.I0Itec.zkclient.ZkEventThread)
> java.lang.NullPointerException
>         at org.I0Itec.zkclient.ZkConnection.exists(ZkConnection.java:95)
> ===
>
>
> After looking at the code of *ZKBrokerPartitionInfo*, seems that this
> handleChildChange
>  will only be triggered when there is new broker added or removed from the
> cluster, but we did not do that at that time, according to the monitoring,
> we also didn't see any broker offline at that time.
>
> so is there any other reason that will cause this error?
>
> --
> Best Regards
>
> ----------------------
> 刘明敏 | mmLiu
>