Thanks Dmitry. We are using Trident with transactional spout/state, and this happens in the first 10 minutes when the topolgoy starts, and recover itself after then. Since the topology is transactional, same messages are replayed, so this doesn't seem a data issue, and does seem some storm bug?
Jie Li Software engineer at Pinterest | www.linkedin.com/in/jay23jack/ On Wed, Aug 13, 2014 at 2:13 PM, Dmitry Shulga <dmitry.shu...@gmail.com> wrote: > If you have access to the bolt, check what fields the bolt is expecting. > You may have some coding issues when creating a Tuple for it. > > > > Here is example of the method that defines what fields the bolt is outputting > taken from https://storm.incubator.apache.org/documentation/Tutorial.html. > The Execute method emits a Tuple with two fields, definitions of which can be > found in declareOutputFields. > > > @Override > public void execute(Tuple input) { > int val = input.getInteger(0); > _collector.emit(input, new Values(val*2, val*3)); > _collector.ack(input); > } > > @Override > public void declareOutputFields(OutputFieldsDeclarer declarer) { > declarer.declare(new Fields("double", "triple")); > } > > > > -D > > > On Wed, Aug 13, 2014 at 9:47 AM, Jie Li <jay23j...@gmail.com> wrote: > >> Hi all, >> >> We've been testing Storm for a while and have been happy so far, but this >> error seems a bit unknown and concerning. One of our topologies somehow >> came across this error during testing with nothing really changed, so I >> have no clue how to debug it. And it seems an transient error, as the >> topology somehow recovered itself after running for a while. >> >> The storm version is 0.9.1 running with most of default settings. One >> thing I noticed suspicious was the warning message of "Received invalid >> messages for unknown tasks. Dropping... ". Not sure if it was related and >> if anyone has idea? Here is the full stack trace of the error (that doesn't >> seem useful): >> java.lang.RuntimeException: java.lang.IllegalArgumentException: Tuple >> created with wrong number of fields. Expected 2 fields but got 1 fields >> at >> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:107) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:66) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.disruptor$consume_batch.invoke(disruptor.clj:74) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.daemon.executor$eval3848$fn__3849$fn__3864$fn__3893.invoke(executor.clj:539) >> ~[na:na] >> at backtype.storm.util$async_loop$fn__384.invoke(util.clj:433) >> ~[na:na] >> at clojure.lang.AFn.run(AFn.java:24) [clojure-1.4.0.jar:na] >> at java.lang.Thread.run(Thread.java:662) [na:1.6.0_38] >> Caused by: java.lang.IllegalArgumentException: Tuple created with wrong >> number of fields. Expected 2 fields but got 1 fields >> at backtype.storm.tuple.TupleImpl.<init>(TupleImpl.java:55) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.serialization.KryoTupleDeserializer.deserialize(KryoTupleDeserializer.java:54) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.daemon.executor$mk_task_receiver$fn__3839.invoke(executor.clj:395) >> ~[na:na] >> at >> backtype.storm.disruptor$clojure_handler$reify__1560.onEvent(disruptor.clj:58) >> ~[na:na] >> at >> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:104) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> ... 6 common frames omitted >> 2014-08-13 01:14:58 b.s.d.executor [ERROR] >> java.lang.RuntimeException: java.lang.IllegalArgumentException: Tuple >> created with wrong number of fields. Expected 2 fields but got 1 fields >> at >> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:107) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.utils.DisruptorQueue.consumeBatch(DisruptorQueue.java:66) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.disruptor$consume_batch.invoke(disruptor.clj:74) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.daemon.executor$eval3848$fn__3849$fn__3864$fn__3893.invoke(executor.clj:539) >> ~[na:na] >> at backtype.storm.util$async_loop$fn__384.invoke(util.clj:433) >> ~[na:na] >> at clojure.lang.AFn.run(AFn.java:24) [clojure-1.4.0.jar:na] >> at java.lang.Thread.run(Thread.java:662) [na:1.6.0_38] >> Caused by: java.lang.IllegalArgumentException: Tuple created with wrong >> number of fields. Expected 2 fields but got 1 fields >> at backtype.storm.tuple.TupleImpl.<init>(TupleImpl.java:55) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.serialization.KryoTupleDeserializer.deserialize(KryoTupleDeserializer.java:54) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> at >> backtype.storm.daemon.executor$mk_task_receiver$fn__3839.invoke(executor.clj:395) >> ~[na:na] >> at >> backtype.storm.disruptor$clojure_handler$reify__1560.onEvent(disruptor.clj:58) >> ~[na:na] >> at >> backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:104) >> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating] >> ... 6 common frames omitted >> 2014-08-13 01:14:58 b.s.util [INFO] Halting process: ("Worker died") >> Thanks, >> Jie Li >> Software engineer at Pinterest | www.linkedin.com/in/jay23jack/ >> > >