Hello, I have a storm cluster of 3 nodes and a topology with 3 workers. I have rabbit-mq from which I read messages and also post back to a queue.
I seem to get this exception when I am using more than 1 worker. When I have just 1 worker, I do not get this exception. But when i change it to 3 workers, this exception arises. *java.lang.RuntimeException: java.lang.RuntimeException: java.io.NotSerializableException: com.rabbitmq.client.impl.LongStringHelper$ByteArrayLongString* * 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.disruptor$consume_loop_STAR_$fn__2975.invoke(disruptor.clj:74)* * 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:744)* *Caused by: java.lang.RuntimeException: java.io.NotSerializableException: com.rabbitmq.client.impl.LongStringHelper$ByteArrayLongString* * at backtype.storm.serialization.SerializableSerializer.write(SerializableSerializer.java:24)* * at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:554)* * at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:77)* * at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:18)* * at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:472)* * at backtype.storm.serialization.KryoValuesSerializer.serializeInto(KryoValuesSerializer.java:27)* * at backtype.storm.serialization.KryoTupleSerializer.serialize(KryoTupleSerializer.java:27)* * at backtype.storm.daemon.worker$mk_transfer_fn$fn__5686$fn__5690.invoke(worker.clj:108)* * at backtype.storm.util$fast_list_map.invoke(util.clj:801)* * at backtype.storm.daemon.worker$mk_transfer_fn$fn__5686.invoke(worker.clj:108)* * at backtype.storm.daemon.executor$start_batch_transfer__GT_worker_handler_BANG_$fn__3328.invoke(executor.clj:240)* * at backtype.storm.disruptor$clojure_handler$reify__2962.onEvent(disruptor.clj:43)* * at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:87)* * ... 6 more* *Caused by: java.io.NotSerializableException: com.rabbitmq.client.impl.LongStringHelper$ByteArrayLongString* * at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)* * at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)* * at java.util.HashMap.writeObject(HashMap.java:1133)* * at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)* * at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)* * at java.lang.reflect.Method.invoke(Method.java:606)* * at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)* * at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)* * at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)* * at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)* * at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)* * at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)* * at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)* * at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)* * at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)* * at backtype.storm.serialization.SerializableSerializer.write(SerializableSerializer.java:21)* Any pointers on what could be the reason and how to troubleshoot this? Thanks! Vinay
