Create a DistributedQueue with a lockPath. If QueueConsumer.consumeMessage() throws an exception, the message gets re-queued. Every time this happens, the name of the queue item znode grows in length. After many iterations, node names get very large and the server stops accepting new client connections.
During a re-queue, the new znode created uses the old znode path as the base, and the SEQUENTIAL flag is set. Zookeeper appends a sequence number to the old path (which already had a sequence number), leading to a longer name during each re-queue.