On Thu, Oct 31, 2013 at 01:00:01PM -0600, Eric Blake wrote: > On 10/31/2013 12:41 PM, Daniel P. Berrange wrote: > > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > > > When starting a transient VM the first thing done is to check > > for duplicates. The check looks if there are any running VMs > > with the matching name/uuid. It explicitly allows there to > > be inactive VMs, so that a persistent VM can be temporarily > > booted with a different config. > > > > > > > The fix is to only allow an existing inactive VM if it is > > marked as persistent. > > > > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > > --- > > src/conf/domain_conf.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > ACK. What a nasty bug to track down. > > > > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > > index 51c4e29..454fbfe 100644 > > --- a/src/conf/domain_conf.c > > +++ b/src/conf/domain_conf.c > > @@ -2171,6 +2171,12 @@ virDomainObjListAddLocked(virDomainObjListPtr doms, > > vm->def->name); > > goto error; > > } > > + if (!vm->persistent) { > > + virReportError(VIR_ERR_OPERATION_INVALID, > > + _("domain is being started as '%s'"), > > The error is a bit awkward (I ask to create a domain named 'foo', and > the error message is 'domain is being started as 'foo''), but no worse > than the error message a couple lines earlier ('domain is already active > as 'foo''). Maybe "domain '%s' is already being started" reads better. Ok, changing it thus: @@ -2167,7 +2167,13 @@ virDomainObjListAddLocked(virDomainObjListPtr doms, /* UUID & name match, but if VM is already active, refuse it */ if (virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_INVALID, - _("domain is already active as '%s'"), + _("domain '%s' is already active"), + vm->def->name); + goto error; + } + if (!vm->persistent) { + virReportError(VIR_ERR_OPERATION_INVALID, + _("domain '%s' is already being started"), vm->def->name); goto error; } Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list