oslo.messaging/oslo_messaging
Hervé Beraud 391ce7fc69 Correctly handle missing RabbitMQ queues
Currently, setting the '[oslo_messaging] direct_mandatory_flag' config
option to 'True' (the default) will result in a 'MessageUndeliverable'
exception being raised when sending a reply if a RabbitMQ queue is
missing [1]. It was the responsibility of the application to handle
this exception, however, many applications are not doing so. This has
resulted in a number of bug reports.

Start handling this error condition, using a retry loop to attempt to
resend the message and work around any temporary glitches. Since
attempting to send a reply will will no longer raise an exception,
there is little benefit in retaining the '[oslo_messaging]
direct_mandatory_flag' config option: users setting this to False will
simply not benefit from the retry logic and improved logging added
here. This option is already deprecated though and will be fully
removed in a future release.

[1] https://www.rabbitmq.com/channels.html

Change-Id: Id5cddbefbe24ef100f1cc522f44430df77d217cb
Closes-Bug: #1905965
(cherry picked from commit 4937949dff)
2021-02-18 11:46:49 +01:00
..
_drivers Correctly handle missing RabbitMQ queues 2021-02-18 11:46:49 +01:00
hacking Remove six usage 2020-05-11 10:21:58 +02:00
notify Remove six usage 2020-05-11 10:21:58 +02:00
rpc Add a ping endpoint to RPC dispatcher 2020-08-18 15:09:29 +02:00
tests add min of 1 to rpc_conn_pool_size 2020-10-15 14:25:27 +02:00
__init__.py Remove deprecated localcontext 2016-05-18 09:28:15 +02:00
_utils.py Remove the deprecated blocking executor 2020-02-18 15:49:27 +01:00
conffixture.py Add a ping endpoint to RPC dispatcher 2020-08-18 15:09:29 +02:00
dispatcher.py Remove six usage 2020-05-11 10:21:58 +02:00
exceptions.py Remove six usage 2020-05-11 10:21:58 +02:00
opts.py Add a ping endpoint to RPC dispatcher 2020-08-18 15:09:29 +02:00
serializer.py Remove six usage 2020-05-11 10:21:58 +02:00
server.py Remove six usage 2020-05-11 10:21:58 +02:00
target.py Fixups to the inline documentation 2016-09-12 09:49:00 -04:00
transport.py Remove six usage 2020-05-11 10:21:58 +02:00
version.py pbr.version.VersionInfo needs package name (oslo.xyz and not oslo_xyz) 2017-02-06 12:49:23 -05:00