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(a)redhat.com>
>
> 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(a)redhat.com>
> ---
> 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 :|