KVM test: kvm_subprocess.py: avoid double-closing file descriptors
Also, properly handle closed file descriptors in read_until_output_matches().
Signed-off-by: Michael Goldish <mgoldish@redhat.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@3930 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/client/tests/kvm/kvm_subprocess.py b/client/tests/kvm/kvm_subprocess.py
index 859aa2b..9222d33 100755
--- a/client/tests/kvm/kvm_subprocess.py
+++ b/client/tests/kvm/kvm_subprocess.py
@@ -497,6 +497,7 @@
os.close(fd)
except:
pass
+ self.reader_fds = {}
# Remove all used files
for filename in (_get_filenames("/tmp/kvm_spawn", self.id) +
self.reader_filenames.values()):
@@ -861,9 +862,13 @@
fd = self._get_fd("expect")
end_time = time.time() + timeout
while True:
- r, w, x = select.select([fd], [], [],
- max(0, end_time - time.time()))
- if fd not in r: break
+ try:
+ r, w, x = select.select([fd], [], [],
+ max(0, end_time - time.time()))
+ except (select.error, TypeError):
+ break
+ if fd not in r:
+ break
# Read data from child
newdata = self.read_nonblocking(internal_timeout)
# Print it if necessary