You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Victor Godoy Poluceno <vi...@gmail.com> on 2017/02/09 17:24:24 UTC

Can't embed object in code ..." run time error during worker creation

I've build a very simple topology that uses a Kafka Spout, very much like
this Streamparse's example [1], with just a few minor changes. This
topology works great on local mode (development) but fails on a real Storm
cluster. After the topology is submitted, Storm start to create its workers
but fails with the following stack trace, full stack trace here [2]:

[cut]
2017-02-09 12:46:28.776 b.s.d.worker [ERROR] Error on initialization of
server mk-worker

clojure.lang.Compiler$CompilerException: java.lang.RuntimeException:
Can't embed object in code, maybe print-dup not defined:
java.nio.HeapByteBuffer[pos=0 lim=14 cap=14],
compiling:(NO_SOURCE_PATH:0:0)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6651) ~[clojure-1.6.0.jar:?]
	at clojure.lang.Compiler.analyze(Compiler.java:6445) ~[clojure-1.6.0.jar:?]
	at clojure.lang.Compiler.eval(Compiler.java:6700) ~[clojure-1.6.0.jar:?]
	at clojure.lang.Compiler.eval(Compiler.java:6666) ~[clojure-1.6.0.jar:?]
	at clojure.core$eval.invoke(core.clj:2927) ~[clojure-1.6.0.jar:?]
	at backtype.storm.thrift$instantiate_java_object.invoke(thrift.clj:38)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.daemon.task$get_task_object.invoke(task.clj:85)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.daemon.task$mk_task_data$fn__5375.invoke(task.clj:185)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.util$assoc_apply_self.invoke(util.clj:912)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.daemon.task$mk_task_data.invoke(task.clj:178)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.daemon.task$mk_task.invoke(task.clj:189)
~[storm-core-0.10.2.jar:0.10.2]
	at backtype.storm.daemon.executor$mk_executor$fn__5575.invoke(executor.clj:352)
~[storm-core-0.10.2.jar:0.10.2]

[/cut]

I'm not sure if this has something to do with Streamparse or is just a
Storm issue. I've done some debug and seems to happen when Clojure runs a
eval to evaluate a Java object, probably my Java Spout, but I haven't be
able to determine way it fails to evaluate. Anyway, I'm running with:

Storm version: 0.10.2
Streamparse 3.4.0
Java JRE 1.8.0_121

Any help is much appreciated. Thanks a lot for great work with Storm!

[1] - https://github.com/Parsely/streamparse/tree/master/examples/kafka-jvm
[2] -
https://gist.github.com/victorpoluceno/9b8ace26a01488ccc8a0184d0bc58383

-- 
hooray!

--
Victor Godoy Poluceno