storm-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kabh...@apache.org
Subject [1/2] storm git commit: STORM-1999 Update docs with OutputCollector's threadsafety
Date Fri, 12 Aug 2016 01:58:00 GMT
Repository: storm
Updated Branches:
  refs/heads/1.0.x-branch c24179c3d -> eb1c3ccd7


STORM-1999 Update docs with OutputCollector's threadsafety

* From Storm 1.0.0, OutputCollector is thread safe


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/e218f2e9
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/e218f2e9
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/e218f2e9

Branch: refs/heads/1.0.x-branch
Commit: e218f2e9f169ca25613009f5013bb359d3835d15
Parents: c24179c
Author: Jungtaek Lim <kabhwan@gmail.com>
Authored: Fri Aug 12 08:27:39 2016 +0900
Committer: Jungtaek Lim <kabhwan@gmail.com>
Committed: Fri Aug 12 10:47:14 2016 +0900

----------------------------------------------------------------------
 docs/Troubleshooting.md | 68 --------------------------------------------
 1 file changed, 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/e218f2e9/docs/Troubleshooting.md
----------------------------------------------------------------------
diff --git a/docs/Troubleshooting.md b/docs/Troubleshooting.md
index 7252077..d01015a 100644
--- a/docs/Troubleshooting.md
+++ b/docs/Troubleshooting.md
@@ -112,71 +112,3 @@ Caused by: java.util.ConcurrentModificationException
 Solution: 
 
  * This means that you're emitting a mutable object as an output tuple. Everything you emit
into the output collector must be immutable. What's happening is that your bolt is modifying
the object while it is being serialized to be sent over the network.
-
-
-### NullPointerException from deep inside Storm
-
-Symptoms:
-
- * You get a NullPointerException that looks something like:
-
-```
-java.lang.RuntimeException: java.lang.NullPointerException
-    at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:84)
-    at org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:55)
-    at org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:56)
-    at org.apache.storm.disruptor$consume_loop_STAR_$fn__1596.invoke(disruptor.clj:67)
-    at org.apache.storm.util$async_loop$fn__465.invoke(util.clj:377)
-    at clojure.lang.AFn.run(AFn.java:24)
-    at java.lang.Thread.run(Thread.java:662)
-Caused by: java.lang.NullPointerException
-    at org.apache.storm.serialization.KryoTupleSerializer.serialize(KryoTupleSerializer.java:24)
-    at org.apache.storm.daemon.worker$mk_transfer_fn$fn__4126$fn__4130.invoke(worker.clj:99)
-    at org.apache.storm.util$fast_list_map.invoke(util.clj:771)
-    at org.apache.storm.daemon.worker$mk_transfer_fn$fn__4126.invoke(worker.clj:99)
-    at org.apache.storm.daemon.executor$start_batch_transfer__GT_worker_handler_BANG_$fn__3904.invoke(executor.clj:205)
-    at org.apache.storm.disruptor$clojure_handler$reify__1584.onEvent(disruptor.clj:43)
-    at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:81)
-    ... 6 more
-```
-
-or 
-
-```
-java.lang.RuntimeException: java.lang.NullPointerException
-        at
-org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.disruptor$consume_loop_STAR_$fn__759.invoke(disruptor.clj:94)
-~[storm-core-0.9.3.jar:0.9.3]
-        at org.apache.storm.util$async_loop$fn__458.invoke(util.clj:463)
-~[storm-core-0.9.3.jar:0.9.3]
-        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
-        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
-Caused by: java.lang.NullPointerException: null
-        at clojure.lang.RT.intCast(RT.java:1087) ~[clojure-1.5.1.jar:na]
-        at
-org.apache.storm.daemon.worker$mk_transfer_fn$fn__3548.invoke(worker.clj:129)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.daemon.executor$start_batch_transfer__GT_worker_handler_BANG_$fn__3282.invoke(executor.clj:258)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.disruptor$clojure_handler$reify__746.onEvent(disruptor.clj:58)
-~[storm-core-0.9.3.jar:0.9.3]
-        at
-org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
-~[storm-core-0.9.3.jar:0.9.3]
-        ... 6 common frames omitted
-```
-
-Solution:
-
- * This is caused by having multiple threads issue methods on the `OutputCollector`. All
emits, acks, and fails must happen on the same thread. One subtle way this can happen is if
you make a `IBasicBolt` that emits on a separate thread. `IBasicBolt`'s automatically ack
after execute is called, so this would cause multiple threads to use the `OutputCollector`
leading to this exception. When using a basic bolt, all emits must happen in the same thread
that runs `execute`.


Mime
View raw message