From 29893cf816ab7dccaa68697d5600326b82606972 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 28 Sep 2021 15:26:34 +0200 Subject: [fix] searx.network.stream: fix memory leak --- searx/network/client.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'searx/network/client.py') diff --git a/searx/network/client.py b/searx/network/client.py index 925c0fdd3..a6cec352d 100644 --- a/searx/network/client.py +++ b/searx/network/client.py @@ -6,6 +6,7 @@ import asyncio import logging import threading +import anyio import httpcore import httpx from httpx_socks import AsyncProxyTransport @@ -102,6 +103,9 @@ class AsyncProxyTransportFixed(AsyncProxyTransport): # then each new request creates a new stream and raise the same WriteError await close_connections_for_url(self, url) raise e + except anyio.ClosedResourceError as e: + await close_connections_for_url(self, url) + raise httpx.CloseError from e except httpx.RemoteProtocolError as e: # in case of httpx.RemoteProtocolError: Server disconnected await close_connections_for_url(self, url) @@ -130,6 +134,9 @@ class AsyncHTTPTransportFixed(httpx.AsyncHTTPTransport): # then each new request creates a new stream and raise the same WriteError await close_connections_for_url(self._pool, url) raise e + except anyio.ClosedResourceError as e: + await close_connections_for_url(self._pool, url) + raise httpx.CloseError from e except httpx.RemoteProtocolError as e: # in case of httpx.RemoteProtocolError: Server disconnected await close_connections_for_url(self._pool, url) -- cgit v1.2.3