classification
Title: Subprocess Popen communicate hung if stdin not given to Popen, even though script not expecting any input
Type: Stage:
Components: Windows Versions: Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: JatinGoel, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2018-04-15 11:25 by JatinGoel, last changed 2018-04-15 11:25 by JatinGoel.

Messages (1)
msg315317 - (view) Author: Jatin Goel (JatinGoel) Date: 2018-04-15 11:25
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
History
Date User Action Args
2018-04-15 11:25:33JatinGoelcreate