Hi,
While analysing heap dumps of my worker processes I see that there are
a number of TupleImpl instances lying around without getting GC'd. Over a
period of 6 hours, these instances have increased in number by around
600-700 instances.
I'm running 0.9.1-incubating version of storm with Netty as the
transport.
Further inspection of these instances reveals that these instances have
the following attributes:
_executeSampleStartTime (L) : <null>
_map (L) : <null>
_meta (L) : <null>
_outAckVal (J) : 0
_processSampleStartTime (L) : <null>
context (L) : backtype.storm.task.WorkerTopologyContext@0xec288d48 (112
bytes)<http://ec2-54-186-191-88.us-west-2.compute.amazonaws.com:7000/object/0xec288d48>
id (L) : backtype.storm.tuple.MessageId@0xec7c2158 (24
bytes)<http://ec2-54-186-191-88.us-west-2.compute.amazonaws.com:7000/object/0xec7c2158>
streamId (L) : __tick (32
bytes)<http://ec2-54-186-191-88.us-west-2.compute.amazonaws.com:7000/object/0xeb367690>
taskId (I) : -1
values (L) : clojure.lang.PersistentVector@0xec7c20d0 (52
bytes)<http://ec2-54-186-191-88.us-west-2.compute.amazonaws.com:7000/object/0xec7c20d0>
None of my components have enabled tick tuples but why are there tick
tuples getting accumulated?
I've tried but been unable to trace these tuples to one or more bolts. I
could only figure out that these instances are held in MutableObject
instances collected into Lmax RingBuffer in the DisruptorQueue. But I
haven't been able to figure to which bolt are these being sent to.
Does anyone have any idea about this? I'll be happy to share more
information as needed.
Thanks,
Srinath.