diff options
author | Yury Selivanov <yury@magic.io> | 2018-06-08 22:24:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-08 22:24:37 (GMT) |
commit | 12f482e0ae33021c04264294f33fa6baa9617cec (patch) | |
tree | 6fda4972307c70b27831d3e317029aec7672dd62 /Lib/asyncio/base_events.py | |
parent | 1cbdb2208aa309cf288ee0b53f0ecd85279bb934 (diff) | |
download | cpython-12f482e0ae33021c04264294f33fa6baa9617cec.zip cpython-12f482e0ae33021c04264294f33fa6baa9617cec.tar.gz cpython-12f482e0ae33021c04264294f33fa6baa9617cec.tar.bz2 |
bpo-30805: Avoid race condition with debug logging (GH-7545)
Supersedes https://github.com/python/cpython/pull/2490
Diffstat (limited to 'Lib/asyncio/base_events.py')
-rw-r--r-- | Lib/asyncio/base_events.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 68a1ebe..6b4756a 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 |