From 21f4c780a1de99bdb37abf57445f0c942449b45b Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Fri, 8 Jun 2018 15:42:07 -0700 Subject: [PATCH] bpo-30805: Avoid race condition with debug logging (GH-7545) Supersedes https://github.com/python/cpython/pull/2490 (cherry picked from commit 12f482e0ae33021c04264294f33fa6baa9617cec) Co-authored-by: Yury Selivanov --- Lib/asyncio/base_events.py | 6 ++++-- .../next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 68a1ebe623b..6b4756ad088 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -1476,6 +1476,7 @@ class BaseEventLoop(events.AbstractEventLoop): if bufsize != 0: raise ValueError("bufsize must be 0") protocol = protocol_factory() + debug_log = None if self._debug: # don't log parameters: they may contain sensitive information # (password) and may be too long @@ -1483,7 +1484,7 @@ class BaseEventLoop(events.AbstractEventLoop): self._log_subprocess(debug_log, stdin, stdout, stderr) transport = await self._make_subprocess_transport( protocol, cmd, True, stdin, stdout, stderr, bufsize, **kwargs) - if self._debug: + if self._debug and debug_log is not None: logger.info('%s: %r', debug_log, transport) return transport, protocol @@ -1504,6 +1505,7 @@ class BaseEventLoop(events.AbstractEventLoop): f"program arguments must be a bytes or text string, " f"not {type(arg).__name__}") protocol = protocol_factory() + debug_log = None if self._debug: # don't log parameters: they may contain sensitive information # (password) and may be too long @@ -1512,7 +1514,7 @@ class BaseEventLoop(events.AbstractEventLoop): transport = await self._make_subprocess_transport( protocol, popen_args, False, stdin, stdout, stderr, bufsize, **kwargs) - if self._debug: + if self._debug and debug_log is not None: logger.info('%s: %r', debug_log, transport) return transport, protocol diff --git a/Misc/NEWS.d/next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst b/Misc/NEWS.d/next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst new file mode 100644 index 00000000000..e1ba5767539 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst @@ -0,0 +1 @@ +Avoid race condition with debug logging