[libvirt] [PATCH] qemuDomainRename: Report error if adding domain to domainObj list fails

Michal Privoznik mprivozn at redhat.com
Mon Aug 17 18:39:29 UTC 2015


On 15.08.2015 16:26, Martin Kletzander wrote:
> On Fri, Aug 14, 2015 at 03:40:16PM +0200, Michal Privoznik wrote:
>> So, domain renaming works like this: new domain name is added
>> into the list of domain objects. Then, domain definition is
>> updated. After that, old domain name is removed from the domain
>> object list. Now, if the very firs step fails for some reason, no
> 
> Well, the problem here is that the first step can fail for 2 reasons.
> One of them is that the domain already exists, the second one is an
> OOM error.  What's even worse is that the OOM error gets reported, but
> the duplicate key error doesn't.
> 
> There should be either a hint for the user that domain with such name
> already exists or that should be checked right before. The second
> variant would not be race-free, but there would be only a small window
> of opportunity left.  The con would be that you won't report "already
> exists" error when there's an OOM error already.  Checking for that
> error seems too weird, it would be more worth fixing the has table
> implementation we have :)

Hm.. I agree that the partial error reporting is bad and definitely
calls for fixing. But I think it's gonna be tricky. I mean, we can't
emit a generic enough error message. "Duplicate key $key" would not be
much helpful for users since hash tables are used not only in
virDomainObjList. But maybe it would be better than nothing.

As a separate patch, we can reject the same name. Okay.

Michal




More information about the libvir-list mailing list