On 07/08/2015 07:06 PM, Juan Quintela wrote:
> zhanghailiang <[email protected]> wrote:
>> Hi,
>>
>> If testing migration with '-S' for qemu command line, (migrate
>> directly without executing 'cont' command),
>> qemu process in the destination will abort with the follow message:
>>
>> ERROR: invalid runstate transition: 'inmigrate' -> 'prelaunch'
>> Aborted
>>
>> After the follow modification, it will be OK. Is this need to be fix ?
>
> but this is a "werid" case. basically it means that
>
> - we start on host A
> - we start on host B (with -S)
> - we migrate from A to B
> - now we migrate from B to C without running at all on B
>
> Or I am missing something?
What about this bug? Should we fix it in qemu-2.4?
Thanks
Wen Congyang
>
> Later, Juan.
>
>
>>
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -583,6 +583,7 @@ static const RunStateTransition
>> runstate_transitions_def[] = {
>> { RUN_STATE_INMIGRATE, RUN_STATE_WATCHDOG },
>> { RUN_STATE_INMIGRATE, RUN_STATE_GUEST_PANICKED },
>> + { RUN_STATE_INMIGRATE, RUN_STATE_PRELAUNCH },
>>
>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_PAUSED },
>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_FINISH_MIGRATE },
>>
>>
>> Thanks,
>> zhanghailiang
>>
>> On 2015/7/7 21:08, Juan Quintela wrote:
>>> Next commit would allow to move from incoming migration to error happening
>>> on source.
>>>
>>> Should we add more states to this transition? Luiz?
>>>
>>> Signed-off-by: Juan Quintela <[email protected]>
>>> Reviewed-by: Dr. David Alan Gilbert <[email protected]>
>>> ---
>>> vl.c | 8 +++++++-
>>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/vl.c b/vl.c
>>> index fec7e93..19a8737 100644
>>> --- a/vl.c
>>> +++ b/vl.c
>>> @@ -573,8 +573,14 @@ static const RunStateTransition
>>> runstate_transitions_def[] = {
>>> { RUN_STATE_DEBUG, RUN_STATE_RUNNING },
>>> { RUN_STATE_DEBUG, RUN_STATE_FINISH_MIGRATE },
>>>
>>> - { RUN_STATE_INMIGRATE, RUN_STATE_RUNNING },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_INTERNAL_ERROR },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_IO_ERROR },
>>> { RUN_STATE_INMIGRATE, RUN_STATE_PAUSED },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_RUNNING },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_SHUTDOWN },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_SUSPENDED },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_WATCHDOG },
>>> + { RUN_STATE_INMIGRATE, RUN_STATE_GUEST_PANICKED },
>>>
>>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_PAUSED },
>>> { RUN_STATE_INTERNAL_ERROR, RUN_STATE_FINISH_MIGRATE },
>>>
>
> .
>