Issue 30805: asyncio: race condition with debug and subprocess (original) (raw)

If a process is schedule to run in the event loop with debug disabled and debug is then enabled before the process finishes it will result in a traceback: debug_log undefined.

[2017/06/29 14:39:13] (ERROR) asyncio.default_exception_handler():1261 - Ta sk exception was never retrieved future: <Task finished coro=<kmod_load() done, defined at /usr/local/lib/py thon3.6/site-packages/middlewared/plugins/vm.py:502> exception=UnboundLocal Error("local variable 'debug_log' referenced before assignment",)> Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/vm.py", line 503, in kmod_load kldstat = (await (await Popen(['/sbin/kldstat'], stdout=subprocess.PIPE )).communicate())[0].decode() File "/usr/local/lib/python3.6/asyncio/subprocess.py", line 225, in creat e_subprocess_exec stderr=stderr, **kwds) File "/usr/local/lib/python3.6/asyncio/base_events.py", line 1194, in sub process_exec logger.info('%s: %r', debug_log, transport)