[Libvir] virsh start problem + patch
Daniel P. Berrange
berrange at redhat.com
Tue Mar 11 16:14:04 UTC 2008
On Tue, Mar 11, 2008 at 06:57:33AM +0100, Toth Istvan wrote:
> # virsh list --all
> Id Name State
> ----------------------------------
> 0 Domain-0 running
> - windows-xen shut off
> - windows-xen2 no state
>
> # xm list
> Name ID Mem VCPUs State
> Time(s)
> Domain-0 0 3489 4 r-----
> 853.6
> windows-xen 1 512 0
> -b-s-d 39.4
> windows-xen2 4 512 0
> ------ 22.5
>
> The windows-xen, and windows-xen2 domains were installed the very same
> way, except I've had a Dom0 reboot since I've installed windows-xen, so
> xen has had the opportunity to sort it's state out, whil the
> windows-xen2 domain is a fresh install. Starting and stopping (by xm) a
> freshly installed windows hvm domain does not sort out the state, only a
> Dom0 reboot (or a xend restart) does.
>
> I have attached the output of xm list --long command.
This shows that it is all XenD related - inactive domains should *not*
have a 'domid' or 'state' field set in the 'xm list --long' output. In
both your windows-xen & windows-xen2 VM, these fields are incorrectly
present.
> This problem indeed does look like a Xend bug, but it turns out that it
> does not actually affect virsh. (It does affect virt-manager, as I've
> written to the other list)
> The other problem is I am pretty sure, a virsh logic bug, and is
> independent of the first one.
No, it is again a Xen bug. Inactive domains are *mandated* to have a
domain ID of -1. They do not exist in the hypervisor anymore and thus
have no domain ID associated with them. If XenD is not clearing the
domain ID properly this is a XenD problem.
That all said, we may need to workaround this XenD brokenness in the
libirt XenD driver. Working around it in virsh is the wrong place.
> and I get this:
>
> ./virsh start windows-xen
> <warnings>
> error: Domain is already active
> virDomainGetID(dom) returns 1
>
> ./virsh start windows-xen2
> <warnings>
> error: Domain is already active
> virDomainGetID(dom) returns 3
>
> so virDomainGetID() does not return -1, but returns the actual xen
> domain id of the managed, but inactive xen domain, and I believe this is
> what it should do,
> as it's job is not to tell us about the state of the domain, but to tell
> the id of the domain, regardles of its state.
No. Inactive domains are mandated to have an ID of -1.
Dan.
--
|: Red Hat, Engineering, Boston -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 :|
More information about the libvir-list
mailing list