I think, you may want to start kafka and then give some time for its
initialisation and then submit topology.

On Sat, Nov 19, 2016 at 12:55 AM, Cuneo, Nicholas <ncu...@tycoint.com>
wrote:

> The cause of the null pointer exception is IN kafka spout during an ACK
>
>
>
> My guess is there’s a race condition where it tries to retrieve the topic
> partition from the map but it hasn’t been loaded yet.  Which results in a
> NULL entry during the GET.  When the topology starts up it will immediately
> receive messages but could be slow to startup due to rebalancing of the
> kafka offsets or other tasks it does when it subscribes.
>
>
>
> Like I said, this happens occasionally during startup but not reliably and
> has nothing to do with my code other than I’m probably acking the received
> message faster than the kafka spout can finish initialization.
>
>
>
> Thanks,
>
> Nick
>
>
>
> *From:* Harsh Choudhary [mailto:shry.ha...@gmail.com]
> *Sent:* Friday, November 18, 2016 11:18 AM
> *To:* user@storm.apache.org
> *Subject:* Re: NullPointerException on startup
>
>
>
> Hi
>
> This happens when there is some code in bolt or spout which throws Null
> Pointer Exception. I suggest you to use Debugger in your IDE, to find out
> where is this happening. You can try making a Local Cluster and runs it in
> IDE to figure it out easily.
>
> It never happens because of Storm, so do not raise ticket for now.
>
>
>
>
>
>
> On Sat, Nov 19, 2016 at 12:40 AM, Cuneo, Nicholas <ncu...@tycoint.com>
> wrote:
>
> Hello,
>
>
>
> We are working with storm 1.0.2 and using Kafka client to subscribe to
> kafka topics to retrieve data.  Randomly when our topologies are starting
> up we receive a null pointer exception which is killing the topology.  We
> can’t seem to identify why this happens, or what measures we can take to
> prevent it.  I’m considering raising a ticket with storm to check for null
> to prevent the topology from crashing.
>
>
>
> 2016-11-17 23:11:05.366 o.a.s.util [ERROR] Async loop died!
>
> java.lang.RuntimeException: java.lang.NullPointerException
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:464)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:430)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:420)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.disruptor$consume_batch.invoke(disruptor.clj:69)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.daemon.executor$fn__7990$fn__8005$fn__8036.invoke(executor.clj:628)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:484)
> [storm-core-1.0.2.jar:1.0.2]
>
>     at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
>
>     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
>
> Caused by: java.lang.NullPointerException
>
>     at org.apache.storm.kafka.spout.KafkaSpout.ack(KafkaSpout.java:316)
> ~[stormjar.jar:?]
>
>     at org.apache.storm.daemon.executor$ack_spout_msg.invoke(executor.clj:448)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.daemon.executor$fn__7990$tuple_
> action_fn__7996.invoke(executor.clj:536) ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.daemon.executor$mk_task_receiver$fn__7979.invoke(executor.clj:464)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.disruptor$clojure_handler$reify__7492.onEvent(disruptor.clj:40)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:451)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     ... 7 more
>
> 2016-11-17 23:11:05.379 o.a.s.d.executor [ERROR]
>
> java.lang.RuntimeException: java.lang.NullPointerException
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:464)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:430)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:420)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.disruptor$consume_batch.invoke(disruptor.clj:69)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.daemon.executor$fn__7990$fn__8005$fn__8036.invoke(executor.clj:628)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:484)
> [storm-core-1.0.2.jar:1.0.2]
>
>     at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
>
>     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
>
> Caused by: java.lang.NullPointerException
>
>     at org.apache.storm.kafka.spout.KafkaSpout.ack(KafkaSpout.java:316)
> ~[stormjar.jar:?]
>
>     at org.apache.storm.daemon.executor$ack_spout_msg.invoke(executor.clj:448)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.daemon.executor$fn__7990$tuple_
> action_fn__7996.invoke(executor.clj:536) ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.daemon.executor$mk_task_receiver$fn__7979.invoke(executor.clj:464)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.disruptor$clojure_handler$reify__7492.onEvent(disruptor.clj:40)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     at 
> org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:451)
> ~[storm-core-1.0.2.jar:1.0.2]
>
>     ... 7 more
>
> 2016-11-17 23:11:05.473 o.a.s.util [ERROR] Halting process: ("Worker died")
>
> java.lang.RuntimeException: ("Worker died")
>
>     at org.apache.storm.util$exit_process_BANG_.doInvoke(util.clj:341)
> [storm-core-1.0.2.jar:1.0.2]
>
>     at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.7.0.jar:?]
>
>     at org.apache.storm.daemon.worker$fn__8663$fn__8664.invoke(worker.clj:765)
> [storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.daemon.executor$mk_executor_data$fn__
> 7875$fn__7876.invoke(executor.clj:274) [storm-core-1.0.2.jar:1.0.2]
>
>     at org.apache.storm.util$async_loop$fn__624.invoke(util.clj:494)
> [storm-core-1.0.2.jar:1.0.2]
>
>     at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
>
>     at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
>
>
>
> The method and line number in question below:
>
>
>
> @Override
>
>     public void ack(Object messageId) {
>
>         final KafkaSpoutMessageId msgId = (KafkaSpoutMessageId) messageId;
>
>         if (!consumerAutoCommitMode) {  // Only need to keep track of
> acked tuples if commits are not done automatically
>
>             *acked.get(msgId.getTopicPartition()).add(msgId);*
>
>         }
>
>         emitted.remove(msgId);
>
> }
>
>
>
> Restarting the topology sometimes fixes the issue but sometimes does not.
> I don’t know if there’s some kind of race condition occurring.  We have
> about 15 topologies all connecting to kafka the same way, and this doesn’t
> happen consistently between them.
>
>
>
> Does anyone have any insight as to why this occurs or how to prevent it on
> our end?
>
>
>
>
>
> Thanks,
>
>
>
> *Nick Cuneo*  */  *Software Engineer, Cloud  */  Enterprise Software*
>
> Tel: +1 949 517 4802  /  Mobile: +1 949 243 4952
> 3 Ada  /  Irvine, CA 92618  /  USA
>
> *ncu...@tycoint.com <ncu...@tycoint.com>*  /  *www.tyco.com
> <http://www.tyco.com>*
>
> [image: cid:image003.png@01D2418C.07311610]
>
>
>
> This email (including any attachments) may contain information that is
> private or business confidential. If you received this email in error,
> please delete it from your system without copying it and notify sender by
> reply email so that our records can be corrected
>
>
>
>
> ------------------------------
>
>
> This e-mail contains privileged and confidential information intended for
> the use of the addressees named above. If you are not the intended
> recipient of this e-mail, you are hereby notified that you must not
> disseminate, copy or take any action in respect of any information
> contained in it. If you have received this e-mail in error, please notify
> the sender immediately by e-mail and immediately destroy this e-mail and
> its attachments.
>
>
>
> ------------------------------
>
> This e-mail contains privileged and confidential information intended for
> the use of the addressees named above. If you are not the intended
> recipient of this e-mail, you are hereby notified that you must not
> disseminate, copy or take any action in respect of any information
> contained in it. If you have received this e-mail in error, please notify
> the sender immediately by e-mail and immediately destroy this e-mail and
> its attachments.
>

Reply via email to