diff options
author | Michael Johnson <johnsomor@gmail.com> | 2022-09-07 18:40:24 +0000 |
---|---|---|
committer | Erik Olof Gunnar Andersson <eandersson@blizzard.com> | 2022-09-16 03:17:17 +0000 |
commit | eaab811acfe70ff72f0f3457931a1211753beb1c (patch) | |
tree | 8d2bbecbcde20b2f432ae3db96586ad734425a08 | |
parent | 91395df0bdc4547bf48d5ff856e8b4988fae7d31 (diff) | |
download | designate-eaab811acfe70ff72f0f3457931a1211753beb1c.tar.gz |
Fix Redis connection over TLS
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
(cherry picked from commit 93dee6a3ff44fb7470b3008e8fbbaf99822bbe82)
-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 |