Bug 1580355

Summary: sometimes win2016 guest cause qemu-kvm process quit
Product: Red Hat Enterprise Linux 7 Reporter: Li Xiaohui <xiaohli>
Component: qemu-kvm-rhevAssignee: Yvugenfi <yvugenfi>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.6CC: chayang, juzhang, knoel, kraxel, michen, virt-maint, xfu, xiaohli
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-29 05:20:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Li Xiaohui 2018-05-21 10:54:26 UTC
Description of problem:
Boot multiple win2012 on the same host. then logout one of guest after ~30mins. qemu-kvm process will quit.

Version-Release number of selected component (if applicable):
qemu:
kernel:

How reproducible:
4/4

Steps to Reproduce:
1. Boot multiple win2016 guests(>=2) on the same host

#/usr/libexec/qemu-kvm -cpu SandyBridge -enable-kvm -m 4G -smp 4 -nodefaults -rtc base=localtime,clock=host,driftfix=slew -device pvpanic,ioport=0x505,id=id7hNWlQ -drive id=drive_image1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/home/win2016-64.qcow2 -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=1,bus=pci.0,addr=0x4 -vnc :1 -monitor stdio -device virtio-net-pci,mac=08:9e:01:c2:65:50,id=idhRa7sf,vectors=4,netdev=idNIlYmb,bus=pci.0,addr=0x5 -netdev tap,id=idNIlYmb,vhost=on -drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/auto/en_windows_server_2016_updated_feb_2018_x64_dvd_11636692.iso -device ide-cd,id=cd1,drive=drive_cd1,bootindex=0,bus=ide.0,unit=0 -drive id=drive_winutils,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/auto/winutils.iso -device ide-cd,id=winutils,drive=drive_winutils,bootindex=2,bus=ide.0,unit=1 -drive id=drive_unattended,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/auto/autounattend.iso -device ide-cd,id=unattended,drive=drive_unattended,bootindex=3,bus=ide.1,unit=0 -boot menu=off,strict=off,order=cdn,once=d -vga qxl

2.logout guest after 30mins 



Actual results:
qemu-kvm: /builddir/build/BUILD/qemu-2.12.0/exec.c:1252: cpu_physical_memory_snapshot_get_dirty: Assertion `start + length <= snap->end' failed.
....
Program received signal SIGABRT, Aborted.
...
(gdb) bt
#0  0x00007fffed499207 in raise () from /lib64/libc.so.6
#1  0x00007fffed49a8f8 in abort () from /lib64/libc.so.6
#2  0x00007fffed492026 in __assert_fail_base () from /lib64/libc.so.6
#3  0x00007fffed4920d2 in __assert_fail () from /lib64/libc.so.6
#4  0x0000555555843e21 in cpu_physical_memory_snapshot_get_dirty (snap=snap@entry=0x5555583f1580, 
    start=<optimized out>, length=<optimized out>) at /usr/src/debug/qemu-2.12.0/exec.c:1252
#5  0x000055555589414e in memory_region_snapshot_get_dirty (mr=mr@entry=0x555557f5ed00, 
    snap=snap@entry=0x5555583f1580, addr=<optimized out>, size=<optimized out>)
    at /usr/src/debug/qemu-2.12.0/memory.c:1997
#6  0x00005555558ba1f5 in vga_draw_graphic (full_update=0, s=0x555557f5ecf0)
    at /usr/src/debug/qemu-2.12.0/hw/display/vga.c:1671
#7  vga_update_display (opaque=0x555557f5ecf0) at /usr/src/debug/qemu-2.12.0/hw/display/vga.c:1767
#8  0x0000555555a9d60f in qemu_spice_display_refresh (ssd=0x555557f5e920) at ui/spice-display.c:478
#9  0x0000555555a93cb2 in dpy_refresh (s=0x5555572d6420) at ui/console.c:1654
#10 gui_update (opaque=0x5555572d6420) at ui/console.c:203
#11 0x0000555555b8fee1 in timerlist_run_timers (timer_list=0x5555570e36c0) at util/qemu-timer.c:536
#12 0x0000555555b901c6 in qemu_clock_run_timers (type=<optimized out>) at util/qemu-timer.c:547
#13 qemu_clock_run_all_timers () at util/qemu-timer.c:674
#14 0x0000555555b906f9 in main_loop_wait (nonblocking=nonblocking@entry=0) at util/main-loop.c:528
#15 0x000055555583b717 in main_loop () at vl.c:1963
#16 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4768


Expected results:


Additional info:

Comment 2 Li Xiaohui 2018-05-21 11:04:53 UTC
qemu-kvm and kernel version:
qemu-kvm-rhev-2.12.0-2.el7.x86_64
3.10.0-889.el7.x86_64

QE will test linux guest and older qemu-kvm version later. and update test result to bz asap.

Comment 3 Li Xiaohui 2018-05-23 03:00:35 UTC
(1)For linux guest:
a.test new version: 
Host : kernel-3.10.0-889.el7.x86_64, qemu-kvm-rhev-2.12.0-2.el7.x86_64
Guest: Kernel-3.10.0-889.el7.x86_64

Actual Result : boot 4 guests and run for a long time, can't reproduce the issue.

(2)For windows guest:
a.test previous version:
Host : Kernel-3.10.0-862.el7.x86_64, qemu-kvm-rhev-2.10.0-21.el7.x86_64
Guest: windows 2016

Actual Result : boot 4 guests and run for a long time, can't reproduce the issue.

b.test new version:
Host : kernel-3.10.0-889.el7.x86_64, qemu-kvm-rhev-2.12.0-2.el7.x86_64
Guest : windows 2016

Actual Result : reproduce the issue 100%

Description: three windows guest with each 4G memory, fristly start two guests,  after them boot successful, wait for half an hour , then boot the third one,  the first one will reproduce the bug when it sign out at the third guest booting. (maybe sign out operation need some times)

Comment 6 Yvugenfi@redhat.com 2018-05-27 12:01:59 UTC
Did you install qxl-dod drivers on the guest? If yes, what version?

Comment 7 Li Xiaohui 2018-05-28 14:16:20 UTC
(In reply to Yan Vugenfirer from comment #6)
> Did you install qxl-dod drivers on the guest? If yes, what version?

I'm so sorry for late, today I test fully all situations, please refer to the following results.

1.use spice to connect guests, each guest has qxl-dod driver(spice-qxl-wddm-dod-0.18-1), the issue can't be reproduced.

2.use vnc to connect guests, each guest has qxl-dod driver(spice-qxl-wddm-dod-0.18-1), the issue can't be reproduced.

3.use spice to connect guests, each guest has no qxl-dod driver, the issue can't be reproduced.


4.use vnc to connect guests, each guest has no qxl-dod driver, the issue was reproduced.

Comment 8 Eduardo Habkost 2018-05-28 23:27:44 UTC
The guest shouldn't be able to trigger an assert() in QEMU, anyway.  Maybe Gerd knows what could be triggering it?

Comment 9 Gerd Hoffmann 2018-05-29 05:20:50 UTC

*** This bug has been marked as a duplicate of bug 1575541 ***