Daniel P. Berrange wrote:
On Tue, May 20, 2008 at 10:00:50AM -0400, Cole Robinson wrote:
> Wolfgang Rosenauer wrote:
>> I found that support for setting autostart parameters for xend managed
>> guests has been added to libvirt
>> (
https://www.redhat.com/archives/libvir-list/2008-May/msg00060.html)
>>
>> So I tried that but failed with virsh's autostart command (and also
>> virt-manager) like this:
>>
>> virsh # autostart saruman
>> libvir: Xen Daemon error : POST operation failed: (xend.err "Error
>> creating domain: VM name 'saruman' already exists as domain 32")
>> libvir: Xen Daemon error : failed Xen syscall Failed to redefine sexpr
>> 6508560
>> error: Failed to mark domain saruman as autostarted
>>
>>
>> So yes, the domain is indeed running but I understood it should be
>> changeable during a domain's lifetime.
>>
>> Any ideas?
>> That is a libvirt CVS snapshot from yesterday and a Xen 3.1 installation.
>>
>> Thanks,
>> Wolfgang
> Hmm, I thought redefining the sexpr in place was an a-okay thing to do,
> and this worked on my f8 machine. I'll look into this.
Yes it is an OK thing todo. It is explicitly supported as it is *required*
in order todo installations - we boot the guest with the install config,
and defnie the guest with its persistent config. What exact version of Xen
is being used here ? It looks like it has overzealous duplicate checking
I just found the following patch which is applied to Xen 3.1 on openSUSE
which sounds like the culprit.
If you can confirm that I'm happy to report a bug over at openSUSE.
# HG changeset patch
# User kfraser(a)localhost.localdomain
# Date 1180086787 -3600
# Node ID a717cb2fac908ba82619ba52e34a2cc77942df4f
# Parent 9073caff4b63490bc63bbe2b0b48fd06cc47d6c6
xend: Fix checkname so that it detects duplicate domains.
Signed-off-by: Mats Petersson <mats.petersson(a)amd.com>
Index: xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-3.1-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-3.1-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -2069,7 +2069,7 @@ class XendDomainInfo:
raise VmError('Invalid VM Name')
dom = XendDomain.instance().domain_lookup_nr(name)
- if dom and dom.info['uuid'] != self.info['uuid']:
+ if dom and dom.domid != self.domid:
raise VmError("VM name '%s' already exists%s" %
(name,
dom.domid is not None and