summaryrefslogtreecommitdiff
path: root/releasenotes
diff options
context:
space:
mode:
authorHervé Beraud <hberaud@redhat.com>2021-12-14 15:58:34 +0100
committerHervé Beraud <hberaud@redhat.com>2021-12-15 13:56:12 +0100
commit1fd461647f7f727dad9d4603abf0defe339d320f (patch)
tree4463eb06aa8d1123391af7a2cbdf88ed41b406ec /releasenotes
parentfeb72de7b81e3919dedc697f9fb5484a92f85ad8 (diff)
downloadoslo-messaging-1fd461647f7f727dad9d4603abf0defe339d320f.tar.gz
Force creating non durable control exchange when a precondition failed
Precondition failed exception related to durable exchange config may be triggered when a control exchange is shared between services and when services try to create it with configs that differ from each others. RabbitMQ will reject the services that try to create it with a configuration that differ from the one used first. This kind of exception is not managed for now and services can fails without handling this kind of issue. These changes catch this kind exception to analyze if they related to durable config. In this case we try to re-declare the failing exchange/queue as non durable. This problem can be easily reproduced by running a local RabbitMQ server. By setting the config below (sample.conf): ``` [DEFAULT] transport_url = rabbit://localhost/ [OSLO_MESSAGING_RABBIT] amqp_durable_queues = true ``` And by running our simulator twice: ``` $ tox -e venv -- python tools/simulator.py -d rpc-server -w 40 $ tox -e venv -- python tools/simulator.py --config-file ./sample.conf -d rpc-server -w 40 ``` The first one will create a default non durable control exchange. The second one will create the same default control exchange but as durable. Closes-Bug: #1953351 Change-Id: I27625b468c428cde6609730c8ab429c2c112d010
Diffstat (limited to 'releasenotes')
-rw-r--r--releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml5
1 files changed, 5 insertions, 0 deletions
diff --git a/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml b/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
new file mode 100644
index 0000000..985fc64
--- /dev/null
+++ b/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Force creating non durable control exchange when a precondition failed
+ related to config that differ occuring.