[rabbitmq-discuss] Erlang has closed

tsuraan tsuraan at gmail.com
Fri Sep 18 17:39:28 BST 2009


>> It's a single machine, and all the queues are persistent.
>
> Do you mean 'durable'?

Yeah, that.

> Transactions only span publishes and acks.

Ok, so it's possible that my program did delete the queue that it
needed and then it died before re-creating it.  Those two things are
in adjacent lines, but it's still a possibility, especially on a
really heavily overloaded machine.

> Any abnormal termination of a queue process should result in a sasl log
> entry. Since you are not seeing such log entries it is unlikely that
> abnormal queue termination is a problem.

Is the sasl log in any way related to the simple authentication and
security layer?  I had assumed it was logs for secured connections to
rabbit, but now I'm beginning to suspect it's something else...

> As to whether we should remove the queue record when the queue process
> terminates abnormally ... we couldn't just leave the record in place
> since then there would be no way to ever create a queue with the same
> name or get rid of the record. We could restart the queue process, but
> that presents some interesting race conditions as well as masking a
> potentially serious error from clients (even more than is usually the
> case). It's on our todo list to look into this area though.

Yeah, handling process failure would be complicated.  It seems like
the information required to recover a queue's contents is available
(at least the persistent contents are on disk).  I don't have any idea
how you would handle the transactions a queue is engaged in, unless
AMQP had a transaction rollback error like postgres does for
deadlocks.  From my POV, losing the messages in a queue is a pain;
it's not a total catastrophe, but it would be cool if queue contents
could be recovered after a process crash.




More information about the rabbitmq-discuss mailing list