From 1f1e60d10a69f91c1543df71853a5b9f74831c11 Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Mon, 27 Apr 2026 09:03:11 -0700 Subject: [PATCH] kafka.net.transport: Handle OSError on sock when constructing __str__ --- kafka/net/transport.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/kafka/net/transport.py b/kafka/net/transport.py index 99095511e..77c1c9cd4 100644 --- a/kafka/net/transport.py +++ b/kafka/net/transport.py @@ -327,13 +327,19 @@ async def handshake(self): pass def host_port(self): - host, port = self.getPeer()[0:2] - local_port = self._sock.getsockname()[1] - return '%s:%d<-%d' % (host, port, local_port) + try: + host, port = self._sock.getpeername()[0:2] + except OSError: + return 'none' + try: + local_port = self._sock.getsockname()[1] + except OSError: + return f'{host}:{port}' + return f'{host}:{port}<-{local_port}' def __str__(self): state = ' (closed)' if self._closed else '' - return f"" + return f"<{self.__class__.__name__} [{self.host_port()}]{state}>" class KafkaSSLTransport(KafkaTCPTransport): @@ -395,6 +401,3 @@ def _sock_send(self): err = Errors.KafkaConnectionError(e) return total_bytes, err return total_bytes, err - - def __str__(self): - return ("" if self._closed else ">")