On Fri, Nov 21, 2008 at 01:06:08PM -0500, Ben Guthro wrote:
I tested these changes, and seem to be having some issues opening the
xen driver in a post 3.0.3 codepath:
DEBUG: xen_unified.c: xenUnifiedOpen (Trying hypervisor sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated hypervisor sub-driver)
libvir: Xen Daemon error : internal error failed to create a socket
libvir: Xen error : out of memory
DEBUG: xen_unified.c: xenUnifiedOpen (Failed to make capabilities)
DEBUG: xen_unified.c: xenUnifiedOpen (Failed to activate a mandatory sub-driver)
DEBUG: libvirt.c: do_open (driver 1 Xen returned ERROR)
I haven't chased this down fully yet, but something is interfering...
Wierd, I'm rather puzzelled as to why you'd get the 'Activated hypervisor
sub-driver' message, but not immediately see a 'Trying XenD sub-driver'
message, since there's only one line of code in between them which is a
simple assignment...
DEBUG0("Trying hypervisor sub-driver");
if (drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->open(conn, auth, flags) ==
VIR_DRV_OPEN_SUCCESS) {
DEBUG0("Activated hypervisor sub-driver");
priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] = 1;
}
}
/* XenD is required to suceed if root.
* If it fails as non-root, then the proxy driver may take over
*/
DEBUG0("Trying XenD sub-driver");
if (drivers[XEN_UNIFIED_XEND_OFFSET]->open(conn, auth, flags) ==
VIR_DRV_OPEN_SUCCESS) {
DEBUG0("Activated XenD sub-driver");
priv->opened[XEN_UNIFIED_XEND_OFFSET] = 1;
DEBUG: xen_unified.c: xenUnifiedOpen (Trying hypervisor sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated hypervisor sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Trying XenD sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated XenD sub-driver)
...snip...
One other problem I've noticed is a race condition on the @introduceDomain
watch. The watch fires as soon as the domain ID is added to xenstore.
We then query the name & uuid, but occassionally we query before XenD has
had a chance to fill them in.
I think that upon failure, we'll have to add a timer callback to retry
the lookup after 500ms, to take account of possible race. I'm going to
give this a try...
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|