Issue 33282: Subprocess Popen communicate hung if stdin not given to Popen, even though script not expecting any input (original) (raw)

Hi needed a small help related to the subprocess module I'm executing a powershell process using the subprocess module

process = subprocess.Popen( [ 'powershell.exe', script ], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True )

output, error = process.communicate()

but the call to the communicate method is getting hung on some machines, and not all

i tried to debug the subprocess module but couldn't find anything helpful

the script is not expecting any input from the user

on the machines where it failed, if I just add stdin=subprocess.PIPE argument, it works

process = subprocess.Popen( [ 'powershell.exe', script ], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True )

above works