Red Hat Bugzilla – Bug 866929
seamless migration: assert at destination side after migration
Last modified: 2013-07-03 08:07:36 EDT
Description of problem:
qemu sometimes aborts after migration of Windows 7 guest, when the migration is executed during rebooting the guest.
When executing migration, after the vm migration has completed, but before spice display channel migration completed (i.e., the server display channel hasn't yet received from the client the migration data required for restoring its state).
If:(1) The qxl command ring is not empty, and (2) reset of qxl occurs,
the destination qemu will abort due to
assert(!spice_display_running || SPICE_RING_IS_EMPTY(&ram->cmd_ring));
(see the stack trace below)
It is more easy to reproduce this over WAN, because then spice seamless migration data transfer takes longer, and also, the cmd ring is more likely to be occupied with commands.
The origin of this bug can also cause other inconsistencies, when instead of reboot, there are resolution changes during migration.
#0 0x00007ffff41ec285 in raise () from /lib64/libc.so.6
#1 0x00007ffff41edb9b in abort () from /lib64/libc.so.6
#2 0x00007ffff41e4e9e in __assert_fail_base () from /lib64/libc.so.6
#3 0x00007ffff41e4f42 in __assert_fail () from /lib64/libc.so.6
#4 0x0000000000593028 in qxl_check_state (d=<optimized out>) at /home/tlv/yhalperi/projects/redhat/qemu/hw/qxl.c:911
#5 qxl_check_state (d=<optimized out>) at /home/tlv/yhalperi/projects/redhat/qemu/hw/qxl.c:906
#6 0x0000000000593045 in qxl_reset_state (d=0x1557530) at /home/tlv/yhalperi/projects/redhat/qemu/hw/qxl.c:919
#7 0x0000000000594910 in qxl_hard_reset (d=0x1557530, loadvm=0) at /home/tlv/yhalperi/projects/redhat/qemu/hw/qxl.c:955
#8 0x000000000041253d in qemu_system_reset () at /home/tlv/yhalperi/projects/redhat/qemu/vl.c:3343
#9 0x0000000000430cc1 in qemu_kvm_system_reset () at /home/tlv/yhalperi/projects/redhat/qemu/qemu-kvm.c:1978
#10 kvm_main_loop () at /home/tlv/yhalperi/projects/redhat/qemu/qemu-kvm.c:2258
#11 0x000000000040c6aa in main_loop () at /home/tlv/yhalperi/projects/redhat/qemu/vl.c:4202
#12 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at /home/tlv/yhalperi/projects/redhat/qemu/vl.c:6430
fixed it upstream
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.