Re: [PATCH 2/2] blockjob: properly track blockcopy xml changes on disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/21/2014 11:38 PM, chen.fan.fnst@xxxxxxxxxxxxxx wrote:
> On Mon, 2014-07-21 at 22:34 -0600, Eric Blake wrote: 
>> We were not directly saving the domain XML to file after starting
>> or finishing a blockcopy.  Without the startup write, a libvirtd
>> restart in the middle of a copy job would forget that the job was
>> underway.  Then at pivot, we were indirectly writing new XML in
>> reaction to events that occur as we stop and restart the guest CPUs.
>> But there was a race: since pivot is an async action, it is possible
>> that the guest is restarted before the pivot completes, so if XML
>> changes during the event, that change was not written.  The original
>> blockcopy code cleared out the <mirror> element prior to restarting
>> the CPUs, but this is also a race, observed if a user does an async
>> pivot and a dumpxml before the event occurs.  Furthermore, this race
>> will interfere with active commit, because that code relies on the
>> <mirror> element at the time of the qemu event to determine whether
>> to inform the user of a normal commit or an active commit.

>> +++ b/src/qemu/qemu_process.c
>> @@ -1016,6 +1016,7 @@ qemuProcessHandleBlockJob(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
>>      virObjectEventPtr event2 = NULL;
>>      const char *path;
>>      virDomainDiskDefPtr disk;
>> +    virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
> 
> Hello Eric,
>    The cfg should be unref by virObjectUnref(cfg) at the end.

You're right.  I also discovered I need to write state after a normal
abort. I'll post an updated version, along with a rebase of my patches
to enable active commit.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]