From upstream change, https://review.openstack.org/#/c/109373/ "If rabbit dies, the consumer can be disconnected before the publisher sends, and if the consumer hasn't declared the queue, the publisher's will send a message to an exchange that's not bound to a queue, and the message wll be lost. Setting passive=True will cause the publisher to fail and retry if the consumer hasn't declared the receiving queue yet." This change addresses this race condition. It would be good to have it backported for RHOS-6.0.
Created attachment 1064343 [details] bug_1338732_script_resaults
Verified. Running the script from bug https://bugs.launchpad.net/oslo.messaging/+bug/1338732 before the fix got the same results (bug reproduced) Running on the new version: 2014.2.3 python-oslo-messaging-1.4.1-5.el7ost.noarch Script results changed (see attached). Fix is also related to bug: https://bugzilla.redhat.com/show_bug.cgi?id=1188304 Which also verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-1659.html
qa test coverage test case: https://polarion.engineering.redhat.com/polarion/#/project/RHELOpenStackPlatform/wiki/HA/HA%20RabbitMQ%20Sanity