WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Help with Guest creation problem

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Help with Guest creation problem
From: Mick Jordan <Mick.Jordan@xxxxxxx>
Date: Tue, 02 Jun 2009 15:08:34 -0700
Delivery-date: Tue, 02 Jun 2009 15:09:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Mick.Jordan@xxxxxxx
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.19 (X11/20090110)
This problem is a bit out of the mainstream as it relates to guests that terminate quickly, which the typical OS guest does not do, but my Java guest applications sometimes do.

The problem manifests itself as the behavior below. I believe that the cause is some race between the guest terminating, console output and the xm code. I'm no Python expert but it doesn't look as if the error handling in do_console is working correctly. Note that if the guest is made to sleep for a second before terminating, this behavior never happens.

I've experienced this occasionally on Solaris xVM and very frequently on various flavors of Xen/Linux.

Any insight appreciated.

Mick

# xm create -c xmconfigs/domain_config_generic extra= -XX:SemiSpaceGC:Virtual -cp /guestvm/image/GuestVM/bin test.java.lang.Null name=GuestVM-test.java.lang.Null-mjj
Unexpected error: <type 'exceptions.OSError'>

Please report to xen-devel@xxxxxxxxxxxxxxxxxxx
Traceback (most recent call last):
 File "/usr/sbin/xm", line 10, in <module>
   main.main(sys.argv)
File "/usr/lib64/python2.5/site-packages/xen/xm/main.py", line 2500, in main
   _, rc = _run_cmd(cmd, cmd_name, args)
File "/usr/lib64/python2.5/site-packages/xen/xm/main.py", line 2524, in _run_cmd
   return True, cmd(args)
 File "<string>", line 1, in <lambda>
File "/usr/lib64/python2.5/site-packages/xen/xm/main.py", line 1302, in xm_importcommand
   cmd.main([command] + args)
File "/usr/lib64/python2.5/site-packages/xen/xm/create.py", line 1293, in main
   do_console(sxp.child_value(config, 'name', -1))
File "/usr/lib64/python2.5/site-packages/xen/xm/create.py", line 1318, in do_console
   (p, rv) = os.waitpid(cpid, os.WNOHANG)
OSError: [Errno 10] No child processes
[root@diy-3-15 GuestVMNative]#

create.py:

def do_console(domain_name):
   cpid = os.fork()
   if cpid != 0:
       for i in range(10):
           # Catch failure of the create process
           time.sleep(1)
           (p, rv) = os.waitpid(cpid, os.WNOHANG)
           if os.WIFEXITED(rv):
               if os.WEXITSTATUS(rv) != 0:
                   sys.exit(os.WEXITSTATUS(rv))
           try:
               # Acquire the console of the created dom
               if serverType == SERVER_XEN_API:
                   domid = server.xenapi.VM.get_domid(
                              get_single_vm(domain_name))
               else:
                   dom = server.xend.domain(domain_name)
                   domid = int(sxp.child_value(dom, 'domid', '-1'))
               console.execConsole(domid)
           except:
               pass
       print("Could not start console\n");
       sys.exit(0)


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>