From 764cc3400a0d6338d950cbf7ee5e7192cbc60bc5 Mon Sep 17 00:00:00 2001 From: Novelfor Date: Wed, 23 Jul 2025 13:59:49 +0800 Subject: [PATCH] fix stream bug when use ssl --- kubernetes/base/stream/ws_client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kubernetes/base/stream/ws_client.py b/kubernetes/base/stream/ws_client.py index 10c6c1bcd5..97d8ad240e 100644 --- a/kubernetes/base/stream/ws_client.py +++ b/kubernetes/base/stream/ws_client.py @@ -182,6 +182,10 @@ def update(self, timeout=0): # efficient as epoll. Will work for fd numbers above 1024. # select.epoll() - newest and most efficient way of polling. # However, only works on linux. + ssl_pending = 0 + if self.sock.is_ssl(): + ssl_pending = self.sock.sock.pending() + if hasattr(select, "poll"): poll = select.poll() poll.register(self.sock.sock, select.POLLIN) @@ -193,7 +197,7 @@ def update(self, timeout=0): r, _, _ = select.select( (self.sock.sock, ), (), (), timeout) - if r: + if r or ssl_pending > 0: op_code, frame = self.sock.recv_data_frame(True) if op_code == ABNF.OPCODE_CLOSE: self._connected = False