Re: [PATCH] migration: introduce decompress-error-check

Xiao Guangrong
2018-04-27T10:40:09Z

On 04/27/2018 05:31 PM, Peter Xu wrote:
> On Fri, Apr 27, 2018 at 11:15:37AM +0800, Xiao Guangrong wrote:
>>
>>
>> On 04/26/2018 10:01 PM, Eric Blake wrote:
>>> On 04/26/2018 04:15 AM, guangrong.xiao@gmail.com wrote:
>>>> From: Xiao Guangrong <xiaoguangrong@tencent.com>
>>>>
>>>> QEMU 2.13 enables strict check for compression & decompression to
>>>> make the migration more robuster, that depends on the source to fix
>>>
>>> s/robuster/robust/
>>>
>>
>> Will fix, thank you for pointing it out.
>>
>>>> the internal design which triggers the unexpected error conditions
>>>
>>> 2.13 hasn't been released yet. Why do we need a knob to explicitly turn
>>> off strict checking? Can we not instead make 2.13 automatically smart
>>> enough to tell if the incoming stream is coming from an older qemu
>>> (which might fail if the strict checks are enabled) vs. a newer qemu
>>> (the sender gave us what we need to ensure the strict checks are
>>> worthwhile)?
>>>
>>
>> Really smart.
>>
>> How about introduce a new command, MIG_CMD_DECOMPRESS_ERR_CHECK,
>> the destination will do strict check if got this command (i.e, new
>> QEMU is running on the source), otherwise, turn the check off.
>
> Why not we just introduce a compat bit for that? I mean something
> like: 15c3850325 ("migration: move skip_section_footers",
> 2017-06-28). Then we turn that check bit off for <=2.12.
>
> Would that work?

I am afraid it can not. :(

The compat bit only impacts local behavior, however, in this case, we
need the source QEMU to tell the destination if it supports strict
error check.