Bug 959102

Summary: core dump happens when quitting qemu via monitor
Product: Red Hat Enterprise Linux 7 Reporter: Xiaoqing Wei <xwei>
Component: qemu-kvmAssignee: Stefan Hajnoczi <stefanha>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, areis, bsarathy, coli, juzhang, knoel, kwolf, michen, mkenneth, mrezanin, pbonzini, qzhang, shuang, sluo, stefanha, virt-maint
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.0-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 869586 Environment:
Last Closed: 2014-06-13 11:49:13 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:
Bug Depends On: 869586    
Bug Blocks:    
Attachments:
Description Flags
rpm -qa
none
splitted xz file
none
splitted xz file -1
none
splitted xz file -2
none
splitted xz file -3
none
splitted xz file -4 none

Description Xiaoqing Wei 2013-05-03 07:13:39 UTC
Created attachment 743068 [details]
thread.apply.all.bt.full

Description of problem:
core dump happens when quitting qemu via monitor

Version-Release number of selected component (if applicable):
qemu-kvm-1.4.0-3.el7.x86_64

How reproducible:
only once

Steps to Reproduce:
1. -S
 -name 'vm1'
 -nodefaults
 -chardev socket,id=hmp_id_humanmonitor1,path=/tmp/monitor-humanmonitor1-20130502-181836-nu1dbmgd,server,nowait
 -mon chardev=hmp_id_humanmonitor1,mode=readline
 -chardev socket,id=serial_id_serial1,path=/tmp/serial-serial1-20130502-181836-nu1dbmgd,server,nowait
 -device isa-serial,chardev=serial_id_serial1
 -chardev socket,id=seabioslog_id_20130502-181836-nu1dbmgd,path=/tmp/seabios-20130502-181836-nu1dbmgd,server,nowait
 -device isa-debugcon,chardev=seabioslog_id_20130502-181836-nu1dbmgd,iobase=0x402
 -device ich9-usb-uhci1,id=usb1,bus=pci.0,addr=0x4
 -device virtio-scsi-pci,id=virtio_scsi_pci0,addr=0x5
 -drive file='/root/staf-kvm-devel/autotest-devel/client/tests/kvm/images/RHEL-Server-7.0-64-virtio.qcow2',if=none,id=virtio-scsi-id0,media=disk,cache=none,boot=off,snapshot=off,format=qcow2,aio=native
 -device scsi-hd,drive=virtio-scsi-id0
 -device virtio-net-pci,netdev=idcoT4FY,mac=9a:24:25:26:27:28,bus=pci.0,addr=0x3,id='id7O6Eh5'
 -netdev tap,id=idcoT4FY,vhost=on,fd=23
 -m 16384
 -smp 8,maxcpus=8,cores=4,threads=1,sockets=2
 -cpu 'Opteron_G4'
 -M pc
 -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1
 -spice port=3000,password=123456,addr=0,tls-port=3200,x509-dir=/tmp/spice_x509d,tls-channel=main,tls-channel=inputs,image-compression=auto_glz,jpeg-wan-compression=auto,zlib-glz-wan-compression=auto,streaming-video=all,agent-mouse=on,playback-compression=on,ipv4
 -vga qxl
 -global qxl-vga.vram_size=33554432
 -rtc base=utc,clock=host,driftfix=slew
 -boot order=cdn,once=c,menu=off
 -no-kvm-pit-reinjection
 -enable-kvm

2.'drive_add auto file=/root/staf-kvm-devel/autotest-devel/client/tests/kvm/storage0.qcow2,if=none,format=qcow2,id=block-idVtTf4K'
'device_add id=block-idVtTf4K,driver=virtio-blk-pci,drive=block-idVtTf4K'
3.in guest# mke2fs
4.'device_del block-idb6JG0m'
5. qemu_monitor # quit
[qemu output] (Process terminated with status 0)

Actual results:
qemu core dump, with exit status 0
(gdb) bt
#0  virtio_blk_handle_request (req=req@entry=0x40, mrb=mrb@entry=0x7fff838e8a50) at /usr/src/debug/qemu-1.4.0/hw/virtio-blk.c:365
#1  0x00007f36fd22025b in virtio_blk_dma_restart_bh (opaque=0x7f37009f5410) at /usr/src/debug/qemu-1.4.0/hw/virtio-blk.c:457
#2  0x00007f36fd0846ba in aio_bh_poll (ctx=ctx@entry=0x7f36ff57cde0) at async.c:69
#3  0x00007f36fd084114 in aio_poll (ctx=0x7f36ff57cde0, blocking=blocking@entry=false) at aio-posix.c:148
#4  0x00007f36fd0845b0 in aio_ctx_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at async.c:166
#5  0x00007f36fc6f7f56 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#6  0x00007f36fd16f612 in glib_select_poll (rfds=0x7f36fdad4760 <rfds>, wfds=0x7f36fdad46e0 <wfds>, xfds=0x7f36fdad4660 <xfds>, err=false)
    at main-loop.c:209
#7  os_host_main_loop_wait (timeout=4283947008) at main-loop.c:236
#8  main_loop_wait (nonblocking=<optimized out>) at main-loop.c:416
#9  0x00007f36fd07fa6d in main_loop () at vl.c:2001
#10 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4326
(gdb) 

Expected results:
not core dump happen

Additional info:

Comment 1 Xiaoqing Wei 2013-05-03 07:15:03 UTC
Created attachment 743069 [details]
rpm -qa

Comment 3 Xiaoqing Wei 2013-05-03 08:20:34 UTC
Created attachment 743088 [details]
splitted xz file

Comment 4 Xiaoqing Wei 2013-05-03 08:41:06 UTC
Created attachment 743104 [details]
splitted xz file -1

Comment 5 Xiaoqing Wei 2013-05-03 08:54:02 UTC
Created attachment 743123 [details]
splitted xz file -2

Comment 6 Xiaoqing Wei 2013-05-03 09:34:20 UTC
Created attachment 743132 [details]
splitted xz file -3

Comment 7 Xiaoqing Wei 2013-05-03 10:14:03 UTC
Created attachment 743142 [details]
splitted xz file -4

Comment 8 Stefan Hajnoczi 2013-05-03 14:08:59 UTC
Upstream fix:

http://git.qemu-project.org/?p=qemu.git;a=commitdiff;h=69b302b2044a9a0f6d157d25b39a91ff7124c61f

When RHEL7 rebases on QEMU 1.5 this fix will be included.

Comment 9 Stefan Hajnoczi 2013-05-03 14:18:30 UTC
Hopefully "UPSTREAM" is the correct tag for this, we'll get the fix automatically from upstream in future qemu-kvm RHEL7 releases.

Comment 10 Ademar Reis 2013-05-03 18:06:07 UTC
(In reply to comment #9)
> Hopefully "UPSTREAM" is the correct tag for this, we'll get the fix
> automatically from upstream in future qemu-kvm RHEL7 releases.


We actually have a process for upstream bugs while RHEL7 is under development. It' s documented here: https://virt-wiki.lab.eng.brq.redhat.com/RHEL7/PreBetaBugzillas

(reopening so that I can set it to POST)

Comment 11 Miroslav Rezanina 2013-05-23 11:50:29 UTC
Build in qemu-kvm-1.5.0-1.el7

Comment 12 Sibiao Luo 2014-01-07 03:05:29 UTC
It's hard to reproduce this issue as the old package has been deleted from brewweb and this issue only hit once described in comment #0. And i has checked the steps with Xiaoqing Wei that it's correct to verify. So here i just verify this issue directly.

Verify this issue on qemu-kvm-1.5.3-30.el7.x86_64 with the same steps as comment #0 that did not hit this issue any more,  it's ok to quit, no any core dumped occurred.

host info:
# uname -r && rpm -q qemu-kvm
3.10.0-64.el7.x86_64
qemu-kvm-1.5.3-30.el7.x86_6
guest info:
3.10.0-64.el7.x86_64

# /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/home/RHEL-7.0-20131127.1_Server_x86_64.qcow2bk,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:03:04:05,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -vnc :1 -spice disable-ticketing,port=5931 -vga qxl -monitor stdio
Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
QEMU 1.5.3 monitor - type 'help' for more information
(qemu) __com.redhat_drive_add file=/home/my-data-disk.qcow2,format=qcow2,id=block-idVtTf4K
(qemu) device_add driver=virtio-blk-pci,id=block-idVtTf4K,drive=block-idVtTf4K
(qemu) device_del block-idVtTf4K
(qemu) quit 
/etc/qemu-ifdown: could not launch network script

Base on above, this issue has been fixed correctly, please let me know if any mistake.

Best Regards,
sluo

Comment 14 Ludek Smid 2014-06-13 11:49:13 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.