vm/kojivmd: use Popen.communicate() to avoid deadlocks

This commit is contained in:
Mike Bonnet 2013-06-20 14:08:15 -04:00
parent 1ced6e2b5e
commit a90d8bfb57

View file

@ -417,9 +417,9 @@ class VMExecTask(BaseTaskHandler):
new_path = os.path.join(self.options.imagedir, new_name)
cmd = ['/usr/bin/qemu-img', 'create', '-f', 'qcow2', '-o', 'backing_file=%s' % source_disk, new_path]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
output, dummy = proc.communicate()
ret = proc.wait()
if ret:
output = proc.stdout.read()
raise koji.BuildError, 'unable to create qcow2 image, "%s" returned %s; output was: %s' % \
(' '.join(cmd), ret, output)
vm_user = pwd.getpwnam(self.options.vmuser)
@ -479,9 +479,9 @@ class VMExecTask(BaseTaskHandler):
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, close_fds=True)
output, dummy = proc.communicate()
ret = proc.wait()
if ret:
output = proc.stdout.read()
raise koji.BuildError('unable to clone VM: '
'"%s" returned %s; output was: %s' %
(' '.join(cmd), ret, output))