Running some queries on the broker shows that the queue route is indeed gone from mnesia while the exchange route still exists:<div><br></div><div><div>(rabbit@ip-10-194-206-32)17> mnesia:transaction(fun() -> qlc:eval(qlc:q([{route,{binding,{resource,<<"/right_net">>,exchange,<<>>},A,{resource,<<"/right_net">>,queue,Queue},B},C} || {route,{binding,{resource,<<"/right_net">>,exchange,<<>>},A,{resource,<<"/right_net">>,queue,Queue},B},C} <- mnesia:table(rabbit_route), Queue=:=<<"nanite-rs-instance-1adc9b7647af742d57916134ec5e4d488016d864-1098629">>])) end).</div>
<div><b>{atomic,[]}</b></div><div><br></div><div>(rabbit@ip-10-194-206-32)18> mnesia:transaction(fun() -> qlc:eval(qlc:q([{route,{binding,{resource,<<"/right_net">>,exchange,Exchange},A,{resource,<<"/right_net">>,queue,B},C},D} || {route,{binding,{resource,<<"/right_net">>,exchange,Exchange},A,{resource,<<"/right_net">>,queue,B},C},D} <- mnesia:table(rabbit_route), Exchange=:=<<"nanite-rs-instance-1adc9b7647af742d57916134ec5e4d488016d864-1098629">>])) end).</div>
<div><b>{atomic,[{route,{binding,{resource,<<"/right_net">>,</b></div><div><b> exchange,</b></div><div><b> <<"nanite-rs-instance-1adc9b7647af742d57916134ec5e4d488016d864-1098629">>},</b></div>
<div><b> <<>>,</b></div><div><b> {resource,<<"/right_net">>,queue,</b></div><div><b> <<"nanite-rs-instance-1adc9b7647af742d57916134ec5e4d488016d864-1098"...>>},</b></div>
<div><b> []},</b></div><div><b> const}]}</b></div><div><br></div><div>I still don't understand what scenario could cause this to happen though especially since the exchange is auto-delete (and no other queue is ever bound to it). We are seeing this on our production system and as a result have consumers that can't be accessed anymore. Any insight would be greatly appreciated.</div>
<div><br></div><div>Thanks!</div><div><br></div><div>--</div><div>Raphael.</div><div><br></div><div><br></div><div class="gmail_quote">On Thu, Jun 17, 2010 at 2:39 PM, Raphael Simon <span dir="ltr"><<a href="mailto:raphael@rightscale.com">raphael@rightscale.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">More information on this: the successful case (message actually ends up in the queue) uses:<div><br></div><div><div><div>
[:sending,</div><div> #<AMQP::Protocol::Basic::Publish:0xac16128</div><div> @debug=1,</div><div> @exchange=</div>
<div> "my_queue",</div><div> @immediate=nil,</div><div> @mandatory=nil,</div><div> @routing_key=nil,</div><div> @ticket=1>]</div></div><div><br></div><div>while the error case (message does not make it to the queue, i.e. rabbitmqctl list_queues shows 0 message in the queue) uses:</div>
<div><br></div><div><div>[:sending,</div><div> #<AMQP::Protocol::Basic::Publish:0xa2b47d8</div><div> @debug=1,</div><div> @exchange="",</div><div> @immediate=nil,</div><div> @mandatory=nil,</div><div> @routing_key=</div>
<div> "my_queue",</div><div> @ticket=1>]</div></div><div><br></div><div>I'm still wondering what are the steps that would recreate this state.</div><div><br></div><div>--</div><div>Raphael.</div><div>
<div></div><div class="h5"><br><div class="gmail_quote">
On Wed, Jun 16, 2010 at 6:38 PM, Raphael Simon <span dir="ltr"><<a href="mailto:raphael@rightscale.com" target="_blank">raphael@rightscale.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all, we just saw an interesting behavior where messages posted to a queue did not make it to a client while publishing to the corresponding direct exchange was working. I'm wondering what can cause this behavior to happen. Publishing directly to the queue initially worked but "something happened" and now it seems only messages posted to the exchange make it to the client. The queue is durable (so is the exchange obviously) and auto-delete. Does anyone have seen this behavior before?<div>
<br></div><div>Thanks!</div><div><br></div><div>--</div><div>Raphael.</div>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div>