From 99b00efd5edfd5b26bf9e2a35cbfc96277fdcbb1 Mon Sep 17 00:00:00 2001 From: Ariel Eizenberg Date: Thu, 6 Jul 2023 10:02:22 +0300 Subject: gh-106238: Handle KeyboardInterrupt during logging._acquireLock() (GH-106239) Co-authored-by: Ariel Eizenberg --- Lib/logging/__init__.py | 6 +++++- .../next/Library/2023-06-29-12-40-52.gh-issue-106238.VulKb9.rst | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Library/2023-06-29-12-40-52.gh-issue-106238.VulKb9.rst diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index ba2ed44..fe2039a 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -238,7 +238,11 @@ def _acquireLock(): This should be released with _releaseLock(). """ if _lock: - _lock.acquire() + try: + _lock.acquire() + except BaseException: + _lock.release() + raise def _releaseLock(): """ diff --git a/Misc/NEWS.d/next/Library/2023-06-29-12-40-52.gh-issue-106238.VulKb9.rst b/Misc/NEWS.d/next/Library/2023-06-29-12-40-52.gh-issue-106238.VulKb9.rst new file mode 100644 index 0000000..52e7838 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-06-29-12-40-52.gh-issue-106238.VulKb9.rst @@ -0,0 +1 @@ +Fix rare concurrency bug in lock acquisition by the logging package. -- cgit v0.12