[rabbitmq-discuss] lost message due to binding delay

Aaron Westendorf aaron at agoragames.com
Thu May 27 13:49:27 BST 2010


> The AMQP xml spec marks methods with a 'synchronous="1"' when they are
> synchronous, *except* that many such methods can be turned into asynchronous
> ones by setting a 'nowait' field.

All of the exchange, queue, binding and consumer declaration methods
take a nowait flag, so does that mean that we can set nowait=True and
issue them in succession without waiting for the _ok response?  On the
one hand, that makes sense, but I would expect that nowait would
simply imply that the client is not expecting an _ok response, and
that the broker's behavior would be identical up until the point that
it decided whether to send out an _ok response.

I've never liked the split in documentation for the protocol, and
missed the sync vs.async descriptors in the xml doc.

>> ServiceB would call basic.publish and tx.commit only, having already
>> set up its outbound channel.
>
> Ah. That could trigger the bug Simon mentioned, causing the commit to get
> executed before the publish.

Interesting, that implies that we could see a widespread problem.  So
far though, we haven't, and we've been using that pattern for many
months now.  As the bug we noted only occurred for the first
round-trip as the binding was being created, I don't think we've
actually encountered this bug yet.  Good to know that we should be
looking for this.

-Aaron


-- 
Aaron Westendorf
Senior Software Engineer
Agora Games
359 Broadway
Troy, NY 12180
Phone: 518.268.1000
aaron at agoragames.com
www.agoragames.com



More information about the rabbitmq-discuss mailing list