Bug 1371458 - qemu-kvm SIGABRT when start two VM sharing one OS image with cache='none' io='native'
Summary: qemu-kvm SIGABRT when start two VM sharing one OS image with cache='none' io=...
Keywords:
Status: CLOSED DUPLICATE of bug 1378241
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.3
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: rc
: ---
Assignee: Fam Zheng
QA Contact: CongLi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-08-30 09:12 UTC by Han Han
Modified: 2017-01-23 06:27 UTC (History)
17 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-01-23 06:27:15 UTC
Target Upstream Version:


Attachments (Terms of Use)
gdb backtrace (10.25 KB, text/plain)
2016-08-30 09:12 UTC, Han Han
no flags Details

Description Han Han 2016-08-30 09:12:00 UTC
Created attachment 1195796 [details]
gdb backtrace

Description of problem:
As subject

Version-Release number of selected component (if applicable):
libvirt-2.0.0-6.el7.x86_64
qemu-kvm-rhev-2.6.0-22.el7.x86_64


How reproducible:
100%

Steps to Reproduce:
1. Define VM n1 and n2 with following xml:
```
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none' io='native'/>
      <source file='/var/lib/libvirt/images/n1.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
```

2. Start n1 and n2
# virsh start n1                                                    
Domain n1 started

# virsh start n2                                                    
Domain n2 started

Then qemu will get SIGABRT.
# abrt-cli ls |head
id 865c7462a00c42953cfcb2fb36097955ac7c9394
reason:         qemu-kvm killed by SIGABRT
time:           Thu 25 Aug 2016 05:33:45 PM CST
cmdline:        /usr/libexec/qemu-kvm -name guest=n1,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-19-n1/master-key.aes -machine pc-i440fx-rhel7.3.0,accel=kvm,usb=off,vmport=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid f9a661af-0fa5-4a14-84a1-c3ac73916e54 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-19-n1/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0xb -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0xa -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/var/lib/libvirt/images/n1.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=32,id=hostnet0,vhost=on,vhostfd=34 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b1:0f:ce,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-19-n1/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -device virtio-mouse-pci,id=input1,bus=pci.0,addr=0xc -device virtio-keyboard-pci,id=input2,bus=pci.0,addr=0xd -spice port=5900,tls-port=5901,addr=0.0.0.0,disable-ticketing,x509-dir=/etc/pki/libvirt-spice,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 -object rng-random,id=objrng0,filename=/dev/random -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.0,addr=0x9 -msg timestamp=on
package:        qemu-kvm-rhev-2.6.0-22.el7
uid:            107 (qemu)
count:          1
Directory:      /var/spool/abrt/ccpp-2016-08-25-05:33:45-24954
Reported:       http://faf-report.itos.redhat.com/reports/bthash/48f599eaf3a9a4aa7f12e18726715aa176fbe47b
Run 'abrt-cli report /var/spool/abrt/ccpp-2016-08-25-05:33:45-24954' for creating a case in Red Hat Customer Portal


Actual results:


Expected results:


Additional info:

Comment 2 Ademar Reis 2016-08-31 20:38:50 UTC
One can't use the same disk by two running VMs, so the abort() is somehow expected.

I'm assigning it to Fam just in case there's a low-hanging fruit to be fixed (better error message), or just to mark it fixed in the next rebase, when hopefully we'll have the image locking patches included.

Comment 3 Fam Zheng 2017-01-23 06:27:15 UTC
We already have many BZs for image locking, and this senario is so typical as the invalid use case that we'll try to protect against, so no need to keep it IMO.

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


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