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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list