Hi again,
How should we tackle this? The discussions seems to have stopped,
but as this is a bug, it would be nice to have the fix in 0.7.0
if possible. Any suggestions of what an eveutual reworked patch
should contain, or is this in need of a discussion better saved
to a time where a release is not right around the corner?
Regards,
Jonas
On Tue, Jul 28, 2009 at 08:30:12AM +0200 Jonas Eriksson wrote:
Hi,
I have been examining a bug where libvirtd (and virsh) does not show
all virtual machines on a xen host. This proved to be because of this
program flow:
1. virConnectNumOfDomains -> .. -> xenUnifiedNumOfDomains
-> xenHypervisorNumOfDomains => 3
2. virConnectListDomains(max=3) -> .. -> xenUnifiedListDomains(max=3)
-> xenStoreNumOfDomains(max=3) => { 0, 2, 7 }
The domain with ID 2 is then removed when it is discovered that it is
not a running domain, which leads to this:
xenhost# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 14970 2 r----- 2544.7
vm1 7 512 1 -b---- 2191.7
vm4 512 1 28.0
vm5 12 512 1 -b---- 467.1
vm6 512 1 0.0
vm7 512 1 482.4
xenhost# virsh list
Id Name State
----------------------------------
0 Domain-0 running
7 vm1 idle
xenhost#
But where does "2" come from? If we check all "directories" in
/local/domain which is queried by the xenstore driver, it is apparent
that xenstore is not properly cleaned. We find the sequence {0, 2, 7}
as the first entries:
xenhost# xenstore ls /local/domain |grep '^[^ ]'
0 = ""
2 = ""
7 = ""
9 = ""
10 = ""
11 = ""
12 = ""
xenhost#
This patch checks that the path found in /local/domain/<domid>/vm
exists in xenstore before adding the domid to the return list. The
same thing is done for xenStoreNumOfDomains.
I use SLES11 with Xen 3.3.1_18546_12-3.1.
/Jonas
--
Libvir-list mailing list
Libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
--
Jonas Eriksson
Consultant at AS/EAB/FLJ/IL
Combitech AB
Älvsjö, Sweden