I'm hitting an issue where a queue disappears from underneath me in a high volume federated scenario.<br><br>Background: I'm on RabbitMQ 2.8.5 on top of Ubuntu 10.04.<br><br>I have three brokers bi-directionally federated similarly to the "Small complete Graph" example in <a href="http://www.rabbitmq.com/federation.html">http://www.rabbitmq.com/federation.html</a>. My exchange is called "Skytap", and is a topic exchange. One of the routing key 'words' directs messages to the appropriate broker.<br>
<br>In my example, I have a single master sending "requests" to two slaves which reply back to the master, simulating an RPC scenario. A client app on the 'master' broker reads from an exclusive queue called 'master", while client apps on the slave brokers read from an exclusive queue called "slave'.<br>
<br>In the low volume case, everything works as expected: A steady stream of request messages seen on the slaves and a steady stream of reply messages seen on the master.<br><br>However, if I write "request" messages as fast as possible, in short order I see the 'master' queue disappear. (I know this because I have mnesia logging turned on.)<br>
<br>Here's the mnesia trace from the master client app startup:<br><br>--------<br>Mnesia(rabbit@mq1): write performed by {tid,16820,<0.154.0>} on record:<br> {rabbit_queue,{resource,<<"/">>,queue,<<"master">>},<br>
false,false,<0.3392.0>,[],<0.3398.0>,[],undefined}<br>Mnesia(rabbit@mq1): write performed by {tid,16820,<0.154.0>} on record:<br> {rabbit_route,{binding,{resource,<<"/">>,exchange,<<>>},<br>
<<"master">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br>
const}<br>Mnesia(rabbit@mq1): write performed by {tid,16820,<0.154.0>} on record:<br> {rabbit_reverse_route,<br> {reverse_binding,<br> {resource,<<"/">>,queue,<<"master">>},<br>
<<"master">>,<br> {resource,<<"/">>,exchange,<<>>},<br> []},<br> const}<br><br>Mnesia(rabbit@mq1): write performed by {tid,16821,<0.153.0>} on record:<br>
{rabbit_topic_trie_node,<br> {trie_node,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<167,162,233,102,38,77,235,139,202,148,84,98,202,70,145,209>>},<br>
0,3}<br>Mnesia(rabbit@mq1): write performed by {tid,16821,<0.153.0>} on record:<br> {rabbit_exchange_serial,{resource,<<"/">>,exchange,<<"skytap">>},16}<br>
Mnesia(rabbit@mq1): write performed by {tid,16821,<0.153.0>} on record:<br> {rabbit_reverse_route,<br> {reverse_binding,<br> {resource,<<"/">>,queue,<<"master">>},<br>
<<"master.mgt">>,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> []},<br> const}<br>Mnesia(rabbit@mq1): write performed by {tid,16821,<0.153.0>} on record:<br>
{rabbit_topic_trie_binding,<br> {trie_binding,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<167,162,233,102,38,77,235,139,202,148,84,98,202,70,145,209>>,<br>
{resource,<<"/">>,queue,<<"master">>}},<br> const}<br>Mnesia(rabbit@mq1): write performed by {tid,16821,<0.153.0>} on record:<br> {rabbit_route,{binding,{resource,<<"/">>,exchange,<<"skytap">>},<br>
<<"master.mgt">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br>
const}<br>--------<br><br><br>And then some time later, after a bunch of successful requests/replies, I get this:<br><br>--------<br>Mnesia(rabbit@mq1): write performed by {tid,16822,<0.154.0>} on record:<br>
{rabbit_topic_trie_node,<br> {trie_node,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<167,162,233,102,38,77,235,139,202,148,84,98,202,70,145,209>>},<br>
0,2}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_semi_durable_route,<br> {binding,<br> {resource,<<"/">>,exchange,<<>>},<br>
<<"master">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br> const}<br>Mnesia(rabbit@mq1): write performed by {tid,16822,<0.154.0>} on record:<br>
{rabbit_exchange_serial,{resource,<<"/">>,exchange,<<"skytap">>},17}<br>Mnesia(rabbit@mq1): delete performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_queue,{resource,<<"/">>,queue,<<"master">>}}<br>
Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_reverse_route,<br> {reverse_binding,<br> {resource,<<"/">>,queue,<<"master">>},<br>
<<"master.mgt">>,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> []},<br> const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br>
{rabbit_topic_trie_binding,<br> {trie_binding,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<167,162,233,102,38,77,235,139,202,148,84,98,202,70,145,209>>,<br>
{resource,<<"/">>,queue,<<"master">>}},<br> const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_semi_durable_route,<br>
{binding,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<"master.mgt">>,<br> {resource,<<"/">>,queue,<<"master">>},<br>
[]},<br> const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_route,{binding,{resource,<<"/">>,exchange,<<>>},<br>
<<"master">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br>
const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_route,{binding,{resource,<<"/">>,exchange,<<"skytap">>},<br>
<<"master.mgt">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br>
const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_reverse_route,<br> {reverse_binding,<br> {resource,<<"/">>,queue,<<"master">>},<br>
<<"master">>,<br> {resource,<<"/">>,exchange,<<>>},<br> []},<br> const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br>
{rabbit_durable_route,<br> {binding,<br> {resource,<<"/">>,exchange,<<"skytap">>},<br> <<"master.mgt">>,<br> {resource,<<"/">>,queue,<<"master">>},<br>
[]},<br> const}<br>Mnesia(rabbit@mq1): delete_object performed by {tid,16822,<0.154.0>} on record:<br> {rabbit_durable_route,<br> {binding,<br> {resource,<<"/">>,exchange,<<>>},<br>
<<"master">>,<br> {resource,<<"/">>,queue,<<"master">>},<br> []},<br> const}<br>Mnesia(rabbit@mq1): delete performed by {tid,16822,<0.154.0>} on record:<br>
{rabbit_durable_queue,{resource,<<"/">>,queue,<<"master">>}}<br>--------<br><br>The rabbit@mq1.log file shows nothing of any interest. Just the expected AMQP connection accepting/closing.<br>
<br>Anything else useful I can provide?<br><br>Matt<br>