[rabbitmq-discuss] Erlang has closed

tsuraan tsuraan at gmail.com
Fri Sep 18 15:51:03 BST 2009


> I am not aware of any problem in that area that got fixed in those
> releases. Have you got a reference?

http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-July/004033.html
was my queue_disappeared issue.  I'm not getting the error message
anymore, but a persistent queue is gone.

> In that case the only way for the queue to have disappeared is as part
> of auto-deletion due to the 'exclusive' or 'auto-delete' flag being set,
> or explicit deletion with 'queue.delete'. Unless you are running in a
> cluster, in which case queues can disappear if the node they reside on
> disappears.

It's a single machine, and all the queues are persistent.  There is a
place where queue_delete is called, but the queue is re-created
immediately afterwards (I saw something about queue.purge the other
day, but I haven't looked into it yet). If I do queue_delete and then
a queue_declare in a transaction, will that guarantee that the queue
doesn't disappear?

It looks like right now, if a rabbit_amqqueue_process is terminated,
it removes that queue from mnesia (terminate function of
rabbit_amqqueue_process calls rabbit_amqqueue:internal_delete).
Looking at gen_server2, terminate seems to get called in basically any
case of a process getting an error while handling a call, a supervisor
dying, the process itself dying, I'm not sure what else.  Should all
those things cause the queue record to be removed from mnesia?




More information about the rabbitmq-discuss mailing list