Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix switch connection destination when a rabbitmq cluster node disappear
In a clustered rabbitmq when a node disappears, we get a ConnectionRefusedError because the socket get disconnected. The socket access yields a OSError because the heartbeat tries to reach an unreachable host (No route to host). Catch these exceptions to ensure that we call ensure_connection for switching the connection destination. POC is available at github.com:4383/rabbitmq-oslo_messging-error-poc Example: $ git clone git@github.com:4383/rabbitmq-oslo_messging-error-poc $ cd rabbitmq-oslo_messging-error-poc $ python -m virtualenv . $ source bin/activate $ pip install -r requirements.txt $ sudo podman run -d --hostname my-rabbit --name rabbit rabbitmq:3 $ python poc.py $(sudo podman inspect rabbit | niet '.[0].NetworkSettings.IPAddress') And in parallele in an another shell|tmux $ podman stop rabbit $ # observe the output of the poc.py script we now call ensure_connection Now you can observe some output relative to the connection who is modified and not catched before these changes. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1665399 Closes-Bug: #1828841 Change-Id: I9dc1644cac0e39eb11bf05f57bde77dcf6d42ed3
- Loading branch information