[rabbitmq-discuss] Publish to queue fails but publish to direct exchange works

Raphael Simon raphael at rightscale.com
Fri Jun 18 07:58:38 BST 2010


Regarding:

"I recreated some bindings from within the broker (directly in mnesia) and
now things started working again. Is there a better way to re-create the
binding to the default exchange without having to re-create the queue?"

I should probably mention that sending the following queue.bind packet
didn't seem to help (rabbitmqctl list_bindings still shows the binding
missing).

[:sending,
 #<AMQP::Protocol::Queue::Bind:0x9b26778
  @arguments=nil,
  @debug=1,
  @exchange=
   "nanite-rs-instance-fd0416fe31d7b019112c2c0adce9b4e4a261bab1-1094976",
  @nowait=true,
  @queue="nanite-rs-instance-fd0416fe31d7b019112c2c0adce9b4e4a261bab1-1094976",
  @routing_key=nil,
  @ticket=1>]

--
Raphael


On Thu, Jun 17, 2010 at 11:34 PM, Raphael Simon <raphael at rightscale.com>wrote:

> Matthias, thanks for following up.  Please see my answers inline.
>
> On Thu, Jun 17, 2010 at 10:52 PM, Matthias Radestock <
> matthias at rabbitmq.com> wrote:
>
>> Raphael,
>>
>> Raphael Simon wrote:
>>
>>> Running some queries on the broker shows that the queue route is indeed
>>> gone from mnesia while the exchange route still exists:  [...]
>>>
>>
>> Simply running 'rabbitmqctl list_bindings' should give the same results.
>> Please do that, just to check.
>>
>
> Yes indeed but where is the fun in doing that? OK more seriously I did not
> understand the subtlety of the empty spaces, now I do (as a side note it
> would be nice to have something rather than blank in this case maybe *** or
> ---).
>
>
>>
>> It looks like the binding to the default exchange has vanished. That
>> really should only ever happen if the queue is deleted or that binding is
>> removed explicitly. Could the latter have happened? It's actually a grey
>> area of the spec; imo it should not be allowed, but rabbit does currently
>> permit it.
>>
>
> No I can't think of a place where we would delete a binding. We only ever
> delete queues.
>
>
>>
>> Is the default exchange itself still there? Check with 'rabbitmqctl
>> list_exchanges'.
>>
>
> Yes the exchange still exists.
>
>
>>
>> Is this reproducible at all? I suspect not :(
>>
>
> No it has only happens about 15 times on the course of two days. During
> these two days our system was having issues and weird things could have
> happened on the broker (e.g. the queue could have been deleted and
> recreated).
>
>
>>
>> What version of rabbit are you running?
>
>
> 1.7.2
>
>
>>
>>
>>  I still don't understand what scenario could cause this to happen though
>>> especially since the exchange is auto-delete
>>>
>>
>> Interesting. auto-delete exchanges are very rare. In fact I do not know of
>> anybody else using them. So it's possible there is a bug in that code that
>> has laid dormant for years. Can you explain your use-case for auto-delete
>> exchanges?
>>
>
> Embarrassingly enough, I can't :) The fact that we are using direct
> exchanges for these queues was a bug we introduced, we will be removing
> them.
>
>
>>
>> Also, what version of rabbit are you running?
>>
>
> 1.7.2
>
>
>>
>>
>> Regards,
>>
>> Matthias.
>>
>
> I recreated some bindings from within the broker (directly in mnesia) and
> now things started working again. Is there a better way to re-create the
> binding to the default exchange without having to re-create the queue?
>
> Obviously I'm still very much interested in finding out what could have
> caused the binding to be deleted in the first place.
>
> Thanks,
>
> --
> Raphael.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20100617/623e60fe/attachment.htm>


More information about the rabbitmq-discuss mailing list