summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2018-06-08 22:24:37 (GMT)
committerGitHub <noreply@github.com>2018-06-08 22:24:37 (GMT)
commit12f482e0ae33021c04264294f33fa6baa9617cec (patch)
tree6fda4972307c70b27831d3e317029aec7672dd62
parent1cbdb2208aa309cf288ee0b53f0ecd85279bb934 (diff)
downloadcpython-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
-rw-r--r--Lib/asyncio/base_events.py6
-rw-r--r--Misc/NEWS.d/next/Library/2018-06-08-17-34-16.bpo-30805.3qCWa0.rst1
2 files changed, 5 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
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 0000000..e1ba576
--- /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