qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 14/28] runstate: migration allows more transition


From: zhanghailiang
Subject: Re: [Qemu-devel] [PULL 14/28] runstate: migration allows more transitions now
Date: Thu, 9 Jul 2015 10:08:40 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.1.1

On 2015/7/8 19:06, Juan Quintela wrote:
zhanghailiang <address@hidden> 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?


In my test, the procedure is:
- Start on host A (with -S)
- Start on host B
- migrate A to B.

A reports that migration is completed. (info migrate), but actually, B is abort 
and
reports the above error message.

And yes, it is an uncommon case, but we usually use the above steps in our COLO 
startup,
the reason is we need to keep the consistent of disks in master side and slave 
side, don't start
A before go into COLO mode, (We usually copy the disk from master to slave 
before run qemu,
and will not migrate block in COLO, of course, we can migrate block before go 
into COLO)

So i think maybe it deserves fixing.

Thanks,
zhanghailiang

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 <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
---
   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 },


.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]