From: Ariel Eizenberg Date: Thu, 6 Jul 2023 07:02:22 +0000 (+0300) Subject: gh-106238: Handle KeyboardInterrupt during logging._acquireLock() (GH-106239) X-Git-Tag: v3.13.0a1~1500 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=99b00efd5edfd5b26bf9e2a35cbfc96277fdcbb1;p=thirdparty%2FPython%2Fcpython.git gh-106238: Handle KeyboardInterrupt during logging._acquireLock() (GH-106239) Co-authored-by: Ariel Eizenberg --- diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index ba2ed44b0950..fe2039af0334 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 000000000000..52e78382fd61 --- /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.