[rabbitmq-discuss] Weird Crash - Recovery logic for durable messages/queues/exchanges?
Matthias Radestock
matthias at lshift.net
Fri Aug 7 04:33:43 BST 2009
Darien,
Darien Kindlund wrote:
> So after running RabbitMQ v1.6.0 for awhile, I've encountered a
> strange crash, where the server unexpectedly dies with no crash report
> or any applicable log information written to disk. I'm trying to see
> if I can replicate the issue, but in the meantime, when I recover the
> server, it dutifully recovers all my messages, queues, exchanges, and
> bindings (great!). However, once the server recovers, all the durable
> messages in the queues (from rabbitmqctl) are still marked as
> *messages_unacknowledged" -- not "messages_ready"... To my knowledge,
> this means: "RabbitMQ thinks there is already an AMQP channel and
> connection open which already has these messages -- and is simply
> waiting for an ACK back from this AMQP consumer." ... The problem is:
> when RabbitMQ recovers, all AMQP channels/connections are terminated,
> so this assumption is clearly wrong (in this scenario).
On recovery the persister requeues recovered messages. They should all
be counted as 'ready' unless they are sent to a consumer, in which case
they will show up as 'unacknowledged'.
So what you are seeing is rather strange. Are you sure there aren't any
connected consumers?
Also, are you running rabbit as a single node, or in a cluster?
Regards,
Matthias.
More information about the rabbitmq-discuss
mailing list