You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@storm.apache.org by "Arun Mahadevan (JIRA)" <ji...@apache.org> on 2018/04/19 17:36:00 UTC
[jira] [Updated] (STORM-3035) JMS Spout ack method causes failure
in some cases
[ https://issues.apache.org/jira/browse/STORM-3035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arun Mahadevan updated STORM-3035:
----------------------------------
Description:
JMS Spout ack method assumes that the set "toCommit" is always non-empty but if a fail is invoked (that clears the "toCommit") followed by an ack, it can cause failure.
{noformat}
2018-03-09 08:43:03,220 GMT-0500 MCO-432882-L2 [Thread-36-inboundSpout-executor[5 5]] 7.0.0 ERROR
logging$eval1$fn__7.invoke Async loop died! java.lang.RuntimeException: java.util.NoSuchElementException at
org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:485) ~[storm-core-1.1.0.2.6.3.0-
235.jar:1.1.0.2.6.3.0-235] at
org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:451) ~[storm-core-
1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at
org.apache.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:441) ~[storm-core-1.1.0.2.6.3.0-
235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$consume_batch.invoke(disruptor.clj:69) ~[storm-core-
1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at
org.apache.storm.daemon.executor$fn__6856$fn__6871$fn__6902.invoke(executor.clj:627) ~[storm-core-1.1.0.2.6.3.0-
235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.util$async_loop$fn__555.invoke(util.clj:484) [storm-core-
1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] at
java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] Caused by: java.util.NoSuchElementException at
java.util.TreeMap.key(TreeMap.java:1327) ~[?:1.8.0_111] at java.util.TreeMap.firstKey(TreeMap.java:290) ~
[?:1.8.0_111] at java.util.TreeSet.first(TreeSet.java:394) ~[?:1.8.0_111] at
org.apache.storm.jms.spout.JmsSpout.ack(JmsSpout.java:251) ~[classes/:?] at
org.apache.storm.daemon.executor$ack_spout_msg.invoke(executor.clj:446) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$fn__6856$tuple_action_fn__6862.invoke(executor.clj:535) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$mk_task_receiver$fn__6845.invoke(executor.clj:462) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$clojure_handler$reify__6558.onEvent(disruptor.clj:40) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:472) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] ... 7 more
{noformat}
was:
JMS Spout ack method assumes that the set "toCommit" is always non-empty but if a fail is invoked (that clears the "toCommit") followed by an ack, it can cause failure.
{noformat}
2018-03-09 08:43:03,220 GMT-0500 MCO-432882-L2 [Thread-36-inboundSpout-executor[5 5]] 7.0.0 ERROR logging$eval1$fn__7.invoke Async loop died! java.lang.RuntimeException: java.util.NoSuchElementException at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:485) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:451) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:441) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$consume_batch.invoke(disruptor.clj:69) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$fn__6856$fn__6871$fn__6902.invoke(executor.clj:627) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.util$async_loop$fn__555.invoke(util.clj:484) [storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] Caused by: java.util.NoSuchElementException at java.util.TreeMap.key(TreeMap.java:1327) ~[?:1.8.0_111] at java.util.TreeMap.firstKey(TreeMap.java:290) ~[?:1.8.0_111] at java.util.TreeSet.first(TreeSet.java:394) ~[?:1.8.0_111] at org.apache.storm.jms.spout.JmsSpout.ack(JmsSpout.java:251) ~[classes/:?] at org.apache.storm.daemon.executor$ack_spout_msg.invoke(executor.clj:446) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$fn__6856$tuple_action_fn__6862.invoke(executor.clj:535) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$mk_task_receiver$fn__6845.invoke(executor.clj:462) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$clojure_handler$reify__6558.onEvent(disruptor.clj:40) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:472) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] ... 7 more{noformat}
> JMS Spout ack method causes failure in some cases
> -------------------------------------------------
>
> Key: STORM-3035
> URL: https://issues.apache.org/jira/browse/STORM-3035
> Project: Apache Storm
> Issue Type: Bug
> Reporter: Arun Mahadevan
> Assignee: Arun Mahadevan
> Priority: Major
> Fix For: 2.0.0, 1.2.2
>
>
> JMS Spout ack method assumes that the set "toCommit" is always non-empty but if a fail is invoked (that clears the "toCommit") followed by an ack, it can cause failure.
>
> {noformat}
> 2018-03-09 08:43:03,220 GMT-0500 MCO-432882-L2 [Thread-36-inboundSpout-executor[5 5]] 7.0.0 ERROR
> logging$eval1$fn__7.invoke Async loop died! java.lang.RuntimeException: java.util.NoSuchElementException at
> org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:485) ~[storm-core-1.1.0.2.6.3.0-
> 235.jar:1.1.0.2.6.3.0-235] at
> org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:451) ~[storm-core-
> 1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at
> org.apache.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:441) ~[storm-core-1.1.0.2.6.3.0-
> 235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$consume_batch.invoke(disruptor.clj:69) ~[storm-core-
> 1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at
> org.apache.storm.daemon.executor$fn__6856$fn__6871$fn__6902.invoke(executor.clj:627) ~[storm-core-1.1.0.2.6.3.0-
> 235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.util$async_loop$fn__555.invoke(util.clj:484) [storm-core-
> 1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] at
> java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] Caused by: java.util.NoSuchElementException at
> java.util.TreeMap.key(TreeMap.java:1327) ~[?:1.8.0_111] at java.util.TreeMap.firstKey(TreeMap.java:290) ~
> [?:1.8.0_111] at java.util.TreeSet.first(TreeSet.java:394) ~[?:1.8.0_111] at
> org.apache.storm.jms.spout.JmsSpout.ack(JmsSpout.java:251) ~[classes/:?] at
> org.apache.storm.daemon.executor$ack_spout_msg.invoke(executor.clj:446) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$fn__6856$tuple_action_fn__6862.invoke(executor.clj:535) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.daemon.executor$mk_task_receiver$fn__6845.invoke(executor.clj:462) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.disruptor$clojure_handler$reify__6558.onEvent(disruptor.clj:40) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] at org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:472) ~[storm-core-1.1.0.2.6.3.0-235.jar:1.1.0.2.6.3.0-235] ... 7 more
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)