[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