<div dir="ltr"><div><div><div><div>Thanks Gordon, and Sandy.<br><br></div></div>With RabbitMQ if a message is silently dropped by the broker will a timeout still occur/exception be raised because no reply/ack was received?<br><br></div>With the QPID driver the automatic ack()'s Sandy mentioned don't occur? Will the sender eventually become aware that a message was lost? I'll take a timeout over a silent message drop any day.<br><br>Thanks!<br><br>-Aaron<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 14, 2014 at 1:33 PM, Gordon Sim <span dir="ltr"><<a href="mailto:gsim@redhat.com" target="_blank">gsim@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I agree that greater clarity on expectations around reliability are needed.<br>
<br>
The drivers all differ in this regard.<br>
<br>
As it stands today, the impl_rabbit driver only retries an RPC request if an exception occurs while sending it. However messages are sent unconfirmed[1]. This means a message can be lost before it gets enqueued by the broker, without the sender of the message receiving any error or notification of that fact.<br>
<br>
Even if the requests are durably stored and/or replicated in a clustered RabbitMQ configuration, the reply queues are currently always auto-deleted and are not durable regardless of configuration, so replies may be lost on broker failure even if requests are not.<br>
<br>
So I believe that various failures may cause an RPC request to fail (i.e. to timeout). It seems this is not universally expected however, so I am not sure how many OpenStack services using oslo.messaging expect and handle such failures.<br>
<br>
--Gordon<br>
<br>
[1] The impl_qpid driver by contrast sends messages synchronously - i.e. blocking until confirmed, but on the receive side it does not use acknowledgements so again message loss is possible.<div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<u></u>_________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org" target="_blank">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack</a><br>
</div></div></blockquote></div><br></div>