diff options
author | Michael Johnson <johnsomor@gmail.com> | 2022-09-07 18:40:24 +0000 |
---|---|---|
committer | Michael Johnson <johnsomor@gmail.com> | 2022-09-07 18:42:38 +0000 |
commit | 93dee6a3ff44fb7470b3008e8fbbaf99822bbe82 (patch) | |
tree | beefef388c02358ffefebeb57373dbdf46725c78 | |
parent | 7460ae30bf92b5bdf68137bc5de9f7891a33b89b (diff) | |
download | designate-93dee6a3ff44fb7470b3008e8fbbaf99822bbe82.tar.gz |
Fix Redis connection over TLS15.0.0.0rc1
When Designate is configured to use Redis for coordination over a TLS connection, it will fail to connect with "ssl.SSLError: ('timed out',)".
This is caused by eventlet raising ssl.SSLError instead of the expected socket timeout the core libraries return.
This patch monkey-patches eventlet to return the proper exception.
Closes-Bug: #1989020
Change-Id: I5bd1c10d863212683752e05bb450e6f531ff7e72
-rw-r--r-- | designate/cmd/__init__.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/designate/cmd/__init__.py b/designate/cmd/__init__.py index 3a7edfa9..a899ed3a 100644 --- a/designate/cmd/__init__.py +++ b/designate/cmd/__init__.py @@ -14,8 +14,15 @@ # License for the specific language governing permissions and limitations # under the License. import eventlet +from eventlet.green import ssl +import socket eventlet.monkey_patch(os=False) + +# Work around the eventlet issue that impacts redis using TLS. +# https://github.com/eventlet/eventlet/issues/692 +ssl.timeout_exc = socket.timeout + # Monkey patch the original current_thread to use the up-to-date _active # global variable. See https://bugs.launchpad.net/bugs/1863021 and # https://github.com/eventlet/eventlet/issues/592 |