Hi,
I have one topology with 1 JMS spout (extends BaseJMSSpout), and 2 bolts.
Before submitting the topology, Zookeeper and ActiveMQ are both up and running
ok. But when the topology is submitted, bolts are started without any problem,
only fails to initialize the Spout. The Java Exception I got does not show any
JMS issue, it complains about "java.lang.VerifyError: class
com.google.common.collect.AbstractMapBasedMultimap overrides final method
setMap" instead, and occurs in Storm worker main(), exception detail is below
(I extract from log):
2015-04-22 10:45:23 b.s.d.executor [INFO] Loading executor Test-Spout:[1 1]
2015-04-22 10:45:23 b.s.d.worker [ERROR] Error on initialization of server
mk-worker
java.lang.VerifyError: class com.google.common.collect.AbstractMapBasedMultimap
overrides final method setMap.(Ljava/util/Map;)V
at java.lang.ClassLoader.defineClass1(Native Method)
~[na:1.7.0_65]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
~[na:1.7.0_65]
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
~[na:1.7.0_65]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
~[na:1.7.0_65]
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
~[na:1.7.0_65]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
~[na:1.7.0_65]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
~[na:1.7.0_65]
at java.security.AccessController.doPrivileged(Native Method)
~[na:1.7.0_65]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
~[na:1.7.0_65]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
~[na:1.7.0_65]
at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_65]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
~[na:1.7.0_65]
at java.lang.Class.forName0(Native Method) ~[na:1.7.0_65]
at java.lang.Class.forName(Class.java:270) ~[na:1.7.0_65]
at
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:625)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
~[na:1.7.0_65]
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) ~[na:1.7.0_65]
at backtype.storm.utils.Utils.deserialize(Utils.java:89)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.utils.Utils.getSetComponentObject(Utils.java:235)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.task$get_task_object.invoke(task.clj:73)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.task$mk_task_data$fn__3061.invoke(task.clj:180)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at backtype.storm.util$assoc_apply_self.invoke(util.clj:816)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at backtype.storm.daemon.task$mk_task_data.invoke(task.clj:173)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at backtype.storm.daemon.task$mk_task.invoke(task.clj:184)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.executor$mk_executor$fn__5510.invoke(executor.clj:321)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at clojure.core$map$fn__4207.invoke(core.clj:2485)
~[clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:42)
~[clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:60)
~[clojure-1.5.1.jar:na]
at clojure.lang.RT.seq(RT.java:484) ~[clojure-1.5.1.jar:na]
at clojure.core$seq.invoke(core.clj:133) ~[clojure-1.5.1.jar:na]
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30)
~[clojure-1.5.1.jar:na]
at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
~[clojure-1.5.1.jar:na]
at
clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
~[clojure-1.5.1.jar:na]
at clojure.core$reduce.invoke(core.clj:6177)
~[clojure-1.5.1.jar:na]
at clojure.core$into.invoke(core.clj:6229)
~[clojure-1.5.1.jar:na]
at
backtype.storm.daemon.executor$mk_executor.invoke(executor.clj:321)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.worker$fn__5940$exec_fn__1396__auto____5941$iter__5946__5950$fn__5951.invoke(worker.clj:375)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at clojure.lang.LazySeq.sval(LazySeq.java:42)
~[clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:60)
~[clojure-1.5.1.jar:na]
at clojure.lang.Cons.next(Cons.java:39) ~[clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.next(LazySeq.java:92)
~[clojure-1.5.1.jar:na]
at clojure.lang.RT.next(RT.java:598) ~[clojure-1.5.1.jar:na]
at clojure.core$next.invoke(core.clj:64) ~[clojure-1.5.1.jar:na]
at clojure.core$dorun.invoke(core.clj:2781)
~[clojure-1.5.1.jar:na]
at clojure.core$doall.invoke(core.clj:2796)
~[clojure-1.5.1.jar:na]
at
backtype.storm.daemon.worker$fn__5940$exec_fn__1396__auto____5941.invoke(worker.clj:375)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at clojure.lang.AFn.applyToHelper(AFn.java:185)
[clojure-1.5.1.jar:na]
at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
at clojure.core$apply.invoke(core.clj:617)
~[clojure-1.5.1.jar:na]
at
backtype.storm.daemon.worker$fn__5940$mk_worker__5996.doInvoke(worker.clj:347)
[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at clojure.lang.RestFn.invoke(RestFn.java:512)
[clojure-1.5.1.jar:na]
at backtype.storm.daemon.worker$_main.invoke(worker.clj:454)
[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at clojure.lang.AFn.applyToHelper(AFn.java:172)
[clojure-1.5.1.jar:na]
at clojure.lang.AFn.applyTo(AFn.java:151) [clojure-1.5.1.jar:na]
at backtype.storm.daemon.worker.main(Unknown Source)
[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
2015-04-22 10:45:23 b.s.util [INFO] Halting process: ("Error on initialization")
Any one has idea what the issue could be and how to track / debug this kind of
problem?
Thanks,
-Tao