Jason Trost created STORM-197:
---------------------------------
Summary: registering metrics in an IRichSpout used in Trident
Topology throws an Exception
Key: STORM-197
URL: https://issues.apache.org/jira/browse/STORM-197
Project: Apache Storm (Incubating)
Issue Type: Bug
Reporter: Jason Trost
Because of how the RichSpoutBatchExecutor initializes and calls open() of the
IRichSpout, any metric registrations cause an exception to be thrown. See
stacktrace below.
java.lang.RuntimeException: java.lang.RuntimeException:
TopologyContext.registerMetric can only be called from within overridden
IBolt::prepare() or ISpout::open() method.
at
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:90)
at
backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:61)
at
backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:62)
at
backtype.storm.daemon.executor$fn__3498$fn__3510$fn__3557.invoke(executor.clj:730)
at backtype.storm.util$async_loop$fn__444.invoke(util.clj:403)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: TopologyContext.registerMetric can only
be called from within overridden IBolt::prepare() or ISpout::open() method.
at
backtype.storm.task.TopologyContext.registerMetric(TopologyContext.java:213)
at com.XXXXXXX.spouts.amqp.AMQPSpout.open(AMQPSpout.java:232)
at
storm.trident.spout.$RichSpoutEmitter.emitBatch(RichSpoutBatchExecutor.java:88)
at
storm.trident.spout.TridentSpoutExecutor.execute(TridentSpoutExecutor.java:65)
at
storm.trident.topology.TridentBoltExecutor.execute(TridentBoltExecutor.java:352)
at
backtype.storm.daemon.executor$fn__3498$tuple_action_fn__3500.invoke(executor.clj:615)
at
backtype.storm.daemon.executor$mk_task_receiver$fn__3421.invoke(executor.clj:383)
at
backtype.storm.disruptor$clojure_handler$reify__2962.onEvent(disruptor.clj:43)
at
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:87)
... 6 more
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)