From e99fab9de98043263e158efe0037f25a06586bde Mon Sep 17 00:00:00 2001 From: deanlee Date: Sun, 24 Nov 2024 21:12:28 +0800 Subject: [PATCH] fix memory leak by closing Response --- system/athena/athenad.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/system/athena/athenad.py b/system/athena/athenad.py index 9c9acf2c13c272..60e1781cc5263f 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -258,13 +258,16 @@ def upload_handler(end_event: threading.Event) -> None: sz = -1 cloudlog.event("athena.upload_handler.upload_start", fn=fn, sz=sz, network_type=network_type, metered=metered, retry_count=item.retry_count) - response = _do_upload(item, partial(cb, sm, item, tid, end_event)) - if response.status_code not in (200, 201, 401, 403, 412): - cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered) - retry_upload(tid, end_event) - else: - cloudlog.event("athena.upload_handler.success", fn=fn, sz=sz, network_type=network_type, metered=metered) + response = _do_upload(item, partial(cb, sm, item, tid, end_event)) + try: + if response.status_code not in (200, 201, 401, 403, 412): + cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered) + retry_upload(tid, end_event) + else: + cloudlog.event("athena.upload_handler.success", fn=fn, sz=sz, network_type=network_type, metered=metered) + finally: + response.close() UploadQueueCache.cache(upload_queue) except (requests.exceptions.Timeout, requests.exceptions.ConnectionError, requests.exceptions.SSLError):