On 08/09/2017 11:41 AM, Martin Kletzander wrote: > On Mon, Aug 07, 2017 at 02:20:06PM +0200, Michal Privoznik wrote: >> https://bugzilla.redhat.com/show_bug.cgi?id=1467245 >> >> Currently, there's a bug when undefining a domain with NVRAM >> store. Basically, the unlink() of the NVRAM store file happens >> during the undefine procedure iff domain is inactive. So, if >> domain is running and undefine is called the file is left behind. >> It won't be removed in the domain cleanup process either >> (qemuProcessStop). One of the solutions is to remove if >> regardless of the domain state and rely on qemu having the file >> opened. This still has a downside that if the domain is defined >> back the NVRAM store file is going to be new, any changes to the >> current one are lost (just like with any other file that is >> deleted while a process has it opened). But is it really a >> downside? >> > > It might be. Why don't we disable removing it when the domain is > running? We have some precedence for this. The place which already > deals with this possibility is tools/virsh-domain.c in the cmdUndefine() > where we handle --remove-all-storage. If you look at the help of that > command it also says: > > --nvram remove nvram file, if inactive > > And that makes sense to me. What doesn't, on the other hand, is that it > also says: > > --keep-nvram keep nvram file, if inactive > > I don't get the "if inactive" there. But I'm not going to check who > pushed that. At least not again =) Okay, I'll write a patch that: a) forbids undefine for active domains, unless b) KEEP_NVRAM flag is specified. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list