Jim Meyering <jim(a)meyering.net> wrote:
I've just applied your 3 patches and built the example.
That went fine. Then I tried to run it like this:
...
$ kill $pid
$ LIBVIRT_DEBUG=1 ../../qemud/libvirtd 2> log &
$ ./hellolibvirt
Attempting to connect to hypervisor
Connected to hypervisor at "qemu:///session"
? -> libvir: error : Unknown failure
Failed to get hypervisor version
Disconnected from hypervisor
[Exit 1]
This is on F10 x86_64.
FYI, I poked around in the server to see what was going wrong.
qemudGetVersion calls qemudExtractVersion, which calls
virCapabilitiesDefaultGuestEmulator, which compares the
single guest cap and gets an arch mismatch:
Breakpoint 1, virCapabilitiesDefaultGuestEmulator (caps=0x71fee0,
ostype=0x4bbc40 "hvm", arch=0x4bb980 "i686", domain=0x4bbc44
"qemu")
at capabilities.c:497
...
(gdb) p *caps
$12 = {
host = {
arch = 0x71be60 "x86_64",
nfeatures = 0,
features = 0x0,
offlineMigrate = 0,
liveMigrate = 0,
nmigrateTrans = 0,
migrateTrans = 0x0,
nnumaCell = 1,
numaCell = 0x717430
},
So this test fails: "x86_64" != "i686"
STREQ(caps->guests[i]->arch.name, arch)
so qemudGetVersion does, too.