xm: Don't die when trying to conect the console to short-lived domains

As observed by Mick Joran, if short-lived domain exits cleanly
then os.waitpid() will throw the following exception. This appears
to be because the child process that is used to start the domain
has detached from its parent.

OSError: [Errno 10] No child processes

Cc: Mick Jordan <Mick.Jordan@sun.com>
Signed-off-by: Simon Horman <horms@verge.ent.au>
This commit is contained in:
Keir Fraser committed 2009-06-04 10:46:13 +01:00
1 parent 45cb888069
commit a161e0d852
1 file changed
+7
+7
View File
@@ -1400,6 +1400,13 @@ def do_console(domain_name):
for i in range(10):
# Catch failure of the create process
time.sleep(1)
try:
(p, rv) = os.waitpid(cpid, os.WNOHANG)
except OSError:
# Domain has started cleanly and then exiting,
# the child process used to do this has detached
print("Domain has already finished");
break
(p, rv) = os.waitpid(cpid, os.WNOHANG)
if os.WIFEXITED(rv):
if os.WEXITSTATUS(rv) != 0:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.