From 1ef9880778cbcfe50fc141ae448a38b771c0a2dd Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Thu, 13 Feb 2025 11:01:11 -0800 Subject: [PATCH 1/2] Handle socket init errors, e.g., when IPv6 is disabled --- kafka/conn.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kafka/conn.py b/kafka/conn.py index 177053f08..febce878d 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -368,7 +368,11 @@ def connect(self): log.debug('%s: creating new socket', self) assert self._sock is None self._sock_afi, self._sock_addr = next_lookup - self._sock = socket.socket(self._sock_afi, socket.SOCK_STREAM) + try: + self._sock = socket.socket(self._sock_afi, socket.SOCK_STREAM) + except (socket.error, OSError) as e: + self.close(Errors.KafkaConnectionError("Unable to create socket for AFI {}: {}".format(self._sock_afi, e))) + return self.state for option in self.config['socket_options']: log.debug('%s: setting socket option %s', self, option) From 529c6ae57a8d3f729701edabf5db858402294ec3 Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Thu, 13 Feb 2025 11:07:50 -0800 Subject: [PATCH 2/2] reuse exception --- kafka/conn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kafka/conn.py b/kafka/conn.py index febce878d..4a43976d7 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -371,7 +371,7 @@ def connect(self): try: self._sock = socket.socket(self._sock_afi, socket.SOCK_STREAM) except (socket.error, OSError) as e: - self.close(Errors.KafkaConnectionError("Unable to create socket for AFI {}: {}".format(self._sock_afi, e))) + self.close(e) return self.state for option in self.config['socket_options']: