In this post https://groups.google.com/forum/#!msg/storm-user/c1g_s5L8yuI/Tk8-FgN596sJ I found "Storm will use an unbounded overflow buffer on the spout if it would have been blocked on an emit. Storm will then stop calling nextTuple until it's able to transfer the overflow buffer onto the outgoing queue."...
As that post said, DisruptorQueue has an overflow queue and its type is ConcurrentLinkedQueue, so overflowed messages will be stored in the overflow queue until it ate up memory.