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

Renjie Liu commented on STORM-1642:
-----------------------------------

I do not know how to reproduce this NPE but it just happens several hours or 
several days. I've went through storm's code and I don't think it's possible 
for the msg to be null since the MessageDecoder only returns null when length 
of payload is zero but it's impossible since the payload   contains like source 
component id, source task id, etc. This means that even if I emit a null the 
payload can not be null.

> NullPointerException when deserialize
> -------------------------------------
>
>                 Key: STORM-1642
>                 URL: https://issues.apache.org/jira/browse/STORM-1642
>             Project: Apache Storm
>          Issue Type: Bug
>          Components: storm-core
>    Affects Versions: 0.10.0
>         Environment: jdk 8
>            Reporter: Renjie Liu
>
> Hi:
> I've encountered the following NPE when storm tries to deserialize. I did not 
> use OutputCollector concurrently in my code.  The only object we are passing 
> between bolts are a thrift object, and we have written a serializer for it. 
> I've attached the code of serializer and please help to check whether there 
> are any potential bugs there.
> 2016-03-04 17:17:43.583 b.s.util [ERROR] Async loop died!
> java.lang.RuntimeException: java.lang.NullPointerException
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:135)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:106)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.daemon.executor$fn__5694$fn__5707$fn__5758.invoke(executor.clj:819)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479) 
> [storm-core-0.10.0.jar:0.10.0]
>         at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
>         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
> Caused by: java.lang.NullPointerException
>         at com.esotericsoftware.kryo.io.Input.setBuffer(Input.java:57) 
> ~[kryo-2.21.jar:?]
>         at 
> backtype.storm.serialization.KryoTupleDeserializer.deserialize(KryoTupleDeserializer.java:47)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.daemon.executor$mk_task_receiver$fn__5615.invoke(executor.clj:433)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.disruptor$clojure_handler$reify__5189.onEvent(disruptor.clj:58)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:132)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         ... 6 more
> 2016-03-04 17:17:43.584 b.s.d.executor [ERROR]
> java.lang.RuntimeException: java.lang.NullPointerException
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:135)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:106)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.daemon.executor$fn__5694$fn__5707$fn__5758.invoke(executor.clj:819)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at backtype.storm.util$async_loop$fn__545.invoke(util.clj:479) 
> [storm-core-0.10.0.jar:0.10.0]
>         at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
>         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]
> Caused by: java.lang.NullPointerException
>         at com.esotericsoftware.kryo.io.Input.setBuffer(Input.java:57) 
> ~[kryo-2.21.jar:?]
>         at 
> backtype.storm.serialization.KryoTupleDeserializer.deserialize(KryoTupleDeserializer.java:47)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.daemon.executor$mk_task_receiver$fn__5615.invoke(executor.clj:433)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.disruptor$clojure_handler$reify__5189.onEvent(disruptor.clj:58)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:132)
>  ~[storm-core-0.10.0.jar:0.10.0]
>         ... 6 more
> 2016-03-04 17:17:43.648 b.s.util [ERROR] Halting process: ("Worker died")
> java.lang.RuntimeException: ("Worker died")
>         at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:336) 
> [storm-core-0.10.0.jar:0.10.0]
>         at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.6.0.jar:?]
>         at 
> backtype.storm.daemon.worker$fn__7188$fn__7189.invoke(worker.clj:536) 
> [storm-core-0.10.0.jar:0.10.0]
>         at 
> backtype.storm.daemon.executor$mk_executor_data$fn__5523$fn__5524.invoke(executor.clj:261)
>  [storm-core-0.10.0.jar:0.10.0]
>         at backtype.storm.util$async_loop$fn__545.invoke(util.clj:489) 
> [storm-core-0.10.0.jar:0.10.0]
>         at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?]
>         at java.lang.Thread.run(Thread.java:745) [?:1.8.0_60]



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

Reply via email to