[libvirt] RH EL5 test failure on interfaceshematest and xencapstest

Matthias Bolte matthias.bolte at googlemail.com
Mon Nov 8 21:31:21 UTC 2010

2010/11/8 Eric Blake <eblake at redhat.com>:
> On 11/06/2010 01:30 PM, Andy Howell wrote:
>> I'm trying to build a new RPM for libvirt-0.8.5. Two tests are failing:
>>   interfaceschematest
>>   xencapstest
>> Are these known errors? Any work-arounds?
> There were several reports of failures fixed by patches right after the
> 0.8.5 release, although I'm not sure if applying them will solve all the
> problems you are facing.
> For example,
> https://www.redhat.com/archives/libvir-list/2010-November/msg00085.html
> lists several commits needed for successful testing across multiple xen
> header versions.

No, the problem is different and not specific to libvirt 0.8.5

xenHypervisorInit is called from xenRegister and detects the
sys_interface_version. As Andy figured out correctly, the xencapstest
calls xenHypervisorMakeCapabilitiesInternal with conn == NULL.
xenHypervisorMakeCapabilitiesInternal then calls
xenDaemonNodeGetTopology with conn == NULL if sys_interface_version >=
SYS_IFACE_MIN_VERS_NUMA holds. This is true when you have Xen
installed, otherwise sys_interface_version is -1. Therefore this test
will fail when ypu have recent Xen installed.

I just remember this, because Jim mentioned it quite a while ago on
IRC and I looked up the details in my logs. At that time I suggested
to apply this patch/hack to avoid the problem, as
xenDaemonNodeGetTopology want to talk to a real xend at that point and
insists in conn != NULL for that.

diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index c5cc880..95b3ca2 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2244,8 +2244,7 @@ xenHypervisorBuildCapabilities(virConnectPtr conn,
                                                "xenmigr") < 0)
         goto no_memory;

-    if (sys_interface_version >= SYS_IFACE_MIN_VERS_NUMA) {
+    if (sys_interface_version >= SYS_IFACE_MIN_VERS_NUMA && conn != NULL) {
         if (xenDaemonNodeGetTopology(conn, caps) != 0) {
             return NULL;

I'm not sure why the interfaceschematest fails, as It works for me.


More information about the libvir-list mailing list