From a9b8a00b70245204e2e66119b5e1043a9037f931 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Thu, 4 Jan 2024 14:29:00 +0100 Subject: [PATCH] fix #6529 (#6581) --- CHANGELOG.md | 2 ++ mitmproxy/proxy/mode_servers.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4cb9a8c11..73a46539f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ ## Unreleased: mitmproxy next +* Fix a bug where a traceback is shown during shutdown. + ([#6581](https://github.com/mitmproxy/mitmproxy/pull/6581), @mhils) ## 04 January 2024: mitmproxy 10.2.0 diff --git a/mitmproxy/proxy/mode_servers.py b/mitmproxy/proxy/mode_servers.py index cbe861c2ae..c66b61811c 100644 --- a/mitmproxy/proxy/mode_servers.py +++ b/mitmproxy/proxy/mode_servers.py @@ -234,7 +234,10 @@ def listen_addrs(self) -> tuple[Address, ...]: if isinstance(s, mitmproxy_rs.UdpServer): addrs.append(s.getsockname()) else: - addrs.extend(sock.getsockname() for sock in s.sockets) + try: + addrs.extend(sock.getsockname() for sock in s.sockets) + except OSError: # pragma: no cover + pass # this can fail during shutdown, see https://github.com/mitmproxy/mitmproxy/issues/6529 return tuple(addrs) async def _start(self) -> None: