[PATCH] Fixes: #253

Jorhson_Deng jorhson_deng at 163.com
Sun Dec 12 13:44:05 UTC 2021



Thanks, This is my first fatch to libvirt project and there are some rules 
I am not familar to.
I feel starnge that the comment, becasue the live-migration do the refresh
in qemuMigrationDstFinish, but restore method is not called this function.
And the live-migration in qemuMigrationDstPrepareAny is not the
same function flow with the restore in qemuDomainObjStart. I was wonder
there some forget to the fcuntion qemuProcessRefreshState.














At 2021-12-10 19:37:24, "Peter Krempa" <pkrempa at redhat.com> wrote:
>On Fri, Dec 10, 2021 at 11:26:18 +0800, JorhsonDeng wrote:
>> To resolve the bug: #253.
>> 
>> The restore method should call the qemuProcessRefreshState method
>> to refreash the state of the devices.
>
>Please also mention that this happens when restoring a VM from a save
>image, as it's not clear from the commit message itself.
>
>In general the commit message must be a standalone source of information
>describing what's happening. This also means that the summary line
>should be more descriptive.
>
>
>Note that the libvirt project requires that contributors declare
>conformance with the Developer certificate of origin:
>
>https://www.libvirt.org/hacking.html#developer-certificate-of-origin
>
>> 
>> ---
>>  src/qemu/qemu_process.c | 9 +++------
>>  1 file changed, 3 insertions(+), 6 deletions(-)
>> 
>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>> index 6b83a571b9..ebd60a7b84 100644
>> --- a/src/qemu/qemu_process.c
>> +++ b/src/qemu/qemu_process.c
>> @@ -7703,14 +7703,11 @@ qemuProcessStart(virConnectPtr conn,
>>          if (incoming->deferredURI &&
>>              qemuMigrationDstRun(driver, vm, incoming->deferredURI, asyncJob) < 0)
>>              goto stop;
>> -    } else {
>> -        /* Refresh state of devices from QEMU. During migration this happens
>> -         * in qemuMigrationDstFinish to ensure that state information is fully
>> -         * transferred. */
>> -        if (qemuProcessRefreshState(driver, vm, asyncJob) < 0)
>> -            goto stop;
>
>
>So you are removing a comment which says that for migration this is
>happening elsewhere without any justification or fix to the code.
>
>The refresh in case of migration is happening in a different place for a
>very good reason so we must keep it that way. This means you'll have to
>introduce some form of logic which refreshes the state only when
>restoring a save image.
>
>>      }
>>  
>> +    if (qemuProcessRefreshState(driver, vm, asyncJob) < 0)
>> +        goto stop;
>> +
>>      if (qemuProcessFinishStartup(driver, vm, asyncJob,
>>                                   !(flags & VIR_QEMU_PROCESS_START_PAUSED),
>>                                   incoming ?
>> -- 
>> 2.27.0
>> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20211212/6de2c10b/attachment-0003.htm>


More information about the libvir-list mailing list