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

Martin Kletzander mkletzan at redhat.com
Mon Aug 17 20:38:36 UTC 2015


On Mon, Aug 17, 2015 at 08:39:29PM +0200, Michal Privoznik wrote:
>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.
>

Yeah, it's enough for me to add a check for same name and that it
doesn't already exists.

>Michal
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150817/83cc4e67/attachment-0001.sig>


More information about the libvir-list mailing list