Issue 7177: Unclear warning for subprocess.call (original) (raw)

I wandered across subprocess.call as it was mentioned as a replacement for os.system. The following large warning is attached to it:

Warning Like Popen.wait(), this will deadlock if the child process generates enough output to a stdout or stderr pipe such that it blocks waiting for the OS pipe buffer to accept more data.

This scared my off completely, and I assumed the function was simply broken, as I assumed "stdout pipe" just meant that wherever stdout was sent by default.

I now believe this warning only applies if 'stdout=PIPE', or similar, is used explicitally.

Could this warning be better worded, perhaps adding "if stdout or stderr are explicitly redirected", as in:

Warning Like Popen.wait(), if stdout or stderr are explicitly redirected this will deadlock if the child process generates enough output to a stdout or stderr pipe such that it blocks waiting for the OS pipe buffer to accept more data.