iotests.py: Do not wait() before communicate()
commit49438972b8c2e16cf1f98b1b2355926e8c633e63
authorMax Reitz <mreitz@redhat.com>
Tue, 30 Jun 2020 08:37:11 +0000 (30 10:37 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 3 Jul 2020 07:54:07 +0000 (3 09:54 +0200)
tree3b2cd201eece96bd571be08dda7bf8b55c36685c
parent3dfa23b9eff4315817c1acf59711b8414347de31
iotests.py: Do not wait() before communicate()

Waiting on a process for which we have a pipe will stall if the process
outputs more data than fits into the OS-provided buffer.  We must use
communicate() before wait(), and in fact, communicate() perfectly
replaces wait() already.

We have to drop the stderr=subprocess.STDOUT parameter from
subprocess.Popen() in qemu_nbd_early_pipe(), because stderr is passed on
to the child process, so if we do not drop this parameter, communicate()
will hang (because the pipe is not closed).

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200630083711.40567-1-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
tests/qemu-iotests/iotests.py