summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Johnson <johnsomor@gmail.com>2022-09-07 18:40:24 +0000
committerMichael Johnson <johnsomor@gmail.com>2022-09-07 18:42:38 +0000
commit93dee6a3ff44fb7470b3008e8fbbaf99822bbe82 (patch)
treebeefef388c02358ffefebeb57373dbdf46725c78
parent7460ae30bf92b5bdf68137bc5de9f7891a33b89b (diff)
downloaddesignate-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__.py7
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