]> git.proxmox.com Git - qemu.git/commit - qmp.c
qmp: handle stop/cont in INMIGRATE state
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 23 Oct 2012 12:54:21 +0000 (14:54 +0200)
committerLuiz Capitulino <lcapitulino@redhat.com>
Wed, 24 Oct 2012 13:27:33 +0000 (11:27 -0200)
commit1e9981465f05a0f103d7e09afd975c9c0ff6d132
tree614b2fb31ba681b4bde1d2ed2f3a97b9f790227a
parent852bef0e0c03e2de9d6441471219cd3bc1bf45b5
qmp: handle stop/cont in INMIGRATE state

Right now, stop followed by an incoming migration will let the
virtual machine start.  cont before an incoming migration instead
will fail.

This is bad because the actual behavior is not predictable; it is
racy with respect to the start of the incoming migration.  That's
because incoming migration is blocking, and thus will delay the
processing of stop/cont until the end of the migration.

In addition, there's nothing that really prevents the user from
typing the block device's passwords before incoming migration is
done, so returning the DeviceEncrypted error is also helpful in
the QMP case.

Both things can be fixed by just toggling the autostart variable when
stop/cont are called in INMIGRATE state.

Note that libvirt is currently working around the race by looping
if the MigrationExpected answer is returned.  After this patch, the
command will return right away without ever raising an error.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
qapi-schema.json
qerror.h
qmp.c