Bug 866929 - seamless migration: assert at destination side after migration
seamless migration: assert at destination side after migration
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: spice-server (Show other bugs)
Unspecified Unspecified
unspecified Severity high
: rc
: ---
Assigned To: Yonit Halperin
Desktop QE
Depends On:
Blocks: 881827
  Show dependency treegraph
Reported: 2012-10-16 06:49 EDT by Yonit Halperin
Modified: 2013-07-03 08:07 EDT (History)
8 users (show)

See Also:
Fixed In Version: spice-server-0.12.0-5.el6
Doc Type: Bug Fix
Doc Text:
No documentation is needed. This bug is related to a new feature in RHEL-6.4, spice seamless migration. It was found and fixed during RHEL-6.4 development phase. Cause: Consequence: Fix: Result:
Story Points: ---
Clone Of:
Last Closed: 2013-02-21 05:03:32 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Yonit Halperin 2012-10-16 06:49:40 EDT
Description of problem:

qemu sometimes aborts after migration of Windows 7 guest, when the migration is executed during rebooting the guest.

More specifically:
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
Comment 1 Yonit Halperin 2012-11-12 12:27:02 EST
fixed it upstream
Comment 6 errata-xmlrpc 2013-02-21 05:03:32 EST
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.


Note You need to log in before you can comment on or make changes to this bug.