qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
@ 2019-08-30  8:44 Dmitriy
  2019-09-02  9:40 ` Stefan Hajnoczi
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Dmitriy @ 2019-08-30  8:44 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

[root@kvm-nvme5 qemu]# uname -a
Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux

[root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

[root@kvm-nvme5 qemu]# libvirtd --version
libvirtd (libvirt) 5.6.0

when migrate 
MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system

we got segfault if we have option <driver iothread='1'/> in config for
virtio-scsi controller

[1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
x86_64[5575889ad000+951000]

On 4.0 we have error with this context(dont save all output)
"qemu_coroutine_get_aio_context(co)' failed"

If we remove option 
<driver iothread='1'/>
migrate work fine without segfaults

2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
LC_ALL=C \
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
QEMU_AUDIO_DRV=none \
/usr/bin/qemu-system-x86_64 \
-name guest=p541999,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
-machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
-cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
quencies,hv-reenlightenment,hv-tlbflush \
-m 2148 \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
-object iothread,id=iothread1 \
-uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=44,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-shutdown \
-boot menu=on,strict=on \
-device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
-device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
-device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
-drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
-device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
-drive if=none,id=drive-sata0-0-0,readonly=on \
-device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
-netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=49,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-vnc 0.0.0.0:6128,password \
-device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
char device redirected to /dev/pts/5 (label charserial0)
2019-08-30 08:27:00.539+0000: shutting down, reason=crashed


config:
<domain type='kvm'>
  <name>p541999</name>
  <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
  <memory unit='KiB'>2199552</memory>
  <currentMemory unit='KiB'>2199552</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <iothreads>1</iothreads>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='4096'/>
      <vpindex state='on'/>
      <runtime state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <frequencies state='on'/>
      <reenlightenment state='on'/>
      <tlbflush state='on'/>
    </hyperv>
    <msrs unknown='ignore'/>
  </features>
  <cpu mode='host-model' check='full'>
    <model fallback='forbid'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='yes'/>
    <timer name='hypervclock' present='yes'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
      <source dev='/dev/vm/p541999'/>
      <backingStore/>
      <target dev='sda' bus='scsi'/>
      <iotune>
        <write_bytes_sec>52428800</write_bytes_sec>
        <write_bytes_sec_max>314572800</write_bytes_sec_max>
        <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
      </iotune>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='sdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <controller type='scsi' index='0' model='virtio-scsi'>
      <driver iothread='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='00:00:00:54:19:99'/>
      <source bridge='br0'/>
      <bandwidth>
        <inbound average='12500' peak='12500' burst='1024'/>
        <outbound average='12500' peak='12500' burst='1024'/>
      </bandwidth>
      <model type='virtio'/>
      <filterref filter='clean-traffic'>
        <parameter name='CTRL_IP_LEARNING' value='none'/>
        <parameter name='IP' value='1.2.3.4'/>
      </filterref>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='cirrus' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
</domain>

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1842038

Title:
  qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread

Status in QEMU:
  New

Bug description:
  [root@kvm-nvme5 qemu]# uname -a
  Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux

  [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
  QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
  Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

  [root@kvm-nvme5 qemu]# libvirtd --version
  libvirtd (libvirt) 5.6.0

  when migrate 
  MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
  virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system

  we got segfault if we have option <driver iothread='1'/> in config for
  virtio-scsi controller

  [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
  00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
  x86_64[5575889ad000+951000]

  On 4.0 we have error with this context(dont save all output)
  "qemu_coroutine_get_aio_context(co)' failed"

  If we remove option 
  <driver iothread='1'/>
  migrate work fine without segfaults

  2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
  LC_ALL=C \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
  HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
  XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
  XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
  XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
  QEMU_AUDIO_DRV=none \
  /usr/bin/qemu-system-x86_64 \
  -name guest=p541999,debug-threads=on \
  -S \
  -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
  -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
  -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
  quencies,hv-reenlightenment,hv-tlbflush \
  -m 2148 \
  -overcommit mem-lock=off \
  -smp 1,sockets=1,cores=1,threads=1 \
  -object iothread,id=iothread1 \
  -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
  -no-user-config \
  -nodefaults \
  -chardev socket,id=charmonitor,fd=44,server,nowait \
  -mon chardev=charmonitor,id=monitor,mode=control \
  -rtc base=utc,driftfix=slew \
  -global kvm-pit.lost_tick_policy=delay \
  -no-shutdown \
  -boot menu=on,strict=on \
  -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
  -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
  -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
  -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
  -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
  -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
  -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
  -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
  -drive if=none,id=drive-sata0-0-0,readonly=on \
  -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
  -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
  -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
  -chardev pty,id=charserial0 \
  -device isa-serial,chardev=charserial0,id=serial0 \
  -chardev socket,id=charchannel0,fd=49,server,nowait \
  -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
  -vnc 0.0.0.0:6128,password \
  -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
  -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
  -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
  -msg timestamp=on
  char device redirected to /dev/pts/5 (label charserial0)
  2019-08-30 08:27:00.539+0000: shutting down, reason=crashed

  
  config:
  <domain type='kvm'>
    <name>p541999</name>
    <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
    <memory unit='KiB'>2199552</memory>
    <currentMemory unit='KiB'>2199552</currentMemory>
    <vcpu placement='static'>1</vcpu>
    <iothreads>1</iothreads>
    <resource>
      <partition>/machine</partition>
    </resource>
    <os>
      <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
      <boot dev='cdrom'/>
      <boot dev='hd'/>
      <bootmenu enable='yes'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
      <hyperv>
        <relaxed state='on'/>
        <vapic state='on'/>
        <spinlocks state='on' retries='4096'/>
        <vpindex state='on'/>
        <runtime state='on'/>
        <synic state='on'/>
        <stimer state='on'/>
        <frequencies state='on'/>
        <reenlightenment state='on'/>
        <tlbflush state='on'/>
      </hyperv>
      <msrs unknown='ignore'/>
    </features>
    <cpu mode='host-model' check='full'>
      <model fallback='forbid'/>
    </cpu>
    <clock offset='utc'>
      <timer name='rtc' tickpolicy='catchup'/>
      <timer name='pit' tickpolicy='delay'/>
      <timer name='hpet' present='yes'/>
      <timer name='hypervclock' present='yes'/>
    </clock>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <devices>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
        <source dev='/dev/vm/p541999'/>
        <backingStore/>
        <target dev='sda' bus='scsi'/>
        <iotune>
          <write_bytes_sec>52428800</write_bytes_sec>
          <write_bytes_sec_max>314572800</write_bytes_sec_max>
          <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
        </iotune>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
        <target dev='sdb' bus='sata'/>
        <readonly/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
        <master startport='0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
        <master startport='2'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
        <master startport='4'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
      </controller>
      <controller type='virtio-serial' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </controller>
      <controller type='scsi' index='0' model='virtio-scsi'>
        <driver iothread='1'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
      </controller>
      <controller type='pci' index='0' model='pcie-root'/>
      <controller type='sata' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
      </controller>
      <interface type='bridge'>
        <mac address='00:00:00:54:19:99'/>
        <source bridge='br0'/>
        <bandwidth>
          <inbound average='12500' peak='12500' burst='1024'/>
          <outbound average='12500' peak='12500' burst='1024'/>
        </bandwidth>
        <model type='virtio'/>
        <filterref filter='clean-traffic'>
          <parameter name='CTRL_IP_LEARNING' value='none'/>
          <parameter name='IP' value='1.2.3.4'/>
        </filterref>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      <serial type='pty'>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>
      <channel type='unix'>
        <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
        <target type='virtio' name='org.qemu.guest_agent.0'/>
        <address type='virtio-serial' controller='0' bus='0' port='1'/>
      </channel>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
        <listen type='address' address='0.0.0.0'/>
      </graphics>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
      </memballoon>
    </devices>
    <seclabel type='none' model='none'/>
  </domain>

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
  2019-08-30  8:44 [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread Dmitriy
@ 2019-09-02  9:40 ` Stefan Hajnoczi
  2019-09-02  9:40   ` Stefan Hajnoczi
  2019-09-12  9:23 ` [Qemu-devel] [Bug 1842038] " Dmitriy
  2020-11-25 13:00 ` Thomas Huth
  2 siblings, 1 reply; 5+ messages in thread
From: Stefan Hajnoczi @ 2019-09-02  9:40 UTC (permalink / raw)
  To: Bug 1842038; +Cc: Kevin Wolf, qemu-devel, Markus Armbruster

[-- Attachment #1: Type: text/plain, Size: 20671 bytes --]

On Fri, Aug 30, 2019 at 08:44:35AM -0000, Dmitriy wrote:
> Public bug reported:

Thanks for reporting this.  There have been fixes for virtio-scsi with
iothreads lately, but QEMU 4.1.0 is fairly recent so it should have most
of them.

Can you try qemu.git/master?

> 
> [root@kvm-nvme5 qemu]# uname -a
> Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux
> 
> [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
> QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
> Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
> 
> [root@kvm-nvme5 qemu]# libvirtd --version
> libvirtd (libvirt) 5.6.0
> 
> when migrate 
> MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
> virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system
> 
> we got segfault if we have option <driver iothread='1'/> in config for
> virtio-scsi controller
> 
> [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
> 00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
> x86_64[5575889ad000+951000]
> 
> On 4.0 we have error with this context(dont save all output)
> "qemu_coroutine_get_aio_context(co)' failed"
> 
> If we remove option 
> <driver iothread='1'/>
> migrate work fine without segfaults
> 
> 2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
> LC_ALL=C \
> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
> HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
> XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
> XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
> XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
> QEMU_AUDIO_DRV=none \
> /usr/bin/qemu-system-x86_64 \
> -name guest=p541999,debug-threads=on \
> -S \
> -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
> -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
> -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
> quencies,hv-reenlightenment,hv-tlbflush \
> -m 2148 \
> -overcommit mem-lock=off \
> -smp 1,sockets=1,cores=1,threads=1 \
> -object iothread,id=iothread1 \
> -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
> -no-user-config \
> -nodefaults \
> -chardev socket,id=charmonitor,fd=44,server,nowait \
> -mon chardev=charmonitor,id=monitor,mode=control \
> -rtc base=utc,driftfix=slew \
> -global kvm-pit.lost_tick_policy=delay \
> -no-shutdown \
> -boot menu=on,strict=on \
> -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
> -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
> -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
> -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
> -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
> -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
> -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
> -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
> -drive if=none,id=drive-sata0-0-0,readonly=on \
> -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
> -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
> -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
> -chardev pty,id=charserial0 \
> -device isa-serial,chardev=charserial0,id=serial0 \
> -chardev socket,id=charchannel0,fd=49,server,nowait \
> -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
> -vnc 0.0.0.0:6128,password \
> -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
> -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
> -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
> -msg timestamp=on
> char device redirected to /dev/pts/5 (label charserial0)
> 2019-08-30 08:27:00.539+0000: shutting down, reason=crashed
> 
> 
> config:
> <domain type='kvm'>
>   <name>p541999</name>
>   <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
>   <memory unit='KiB'>2199552</memory>
>   <currentMemory unit='KiB'>2199552</currentMemory>
>   <vcpu placement='static'>1</vcpu>
>   <iothreads>1</iothreads>
>   <resource>
>     <partition>/machine</partition>
>   </resource>
>   <os>
>     <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
>     <boot dev='cdrom'/>
>     <boot dev='hd'/>
>     <bootmenu enable='yes'/>
>   </os>
>   <features>
>     <acpi/>
>     <apic/>
>     <pae/>
>     <hyperv>
>       <relaxed state='on'/>
>       <vapic state='on'/>
>       <spinlocks state='on' retries='4096'/>
>       <vpindex state='on'/>
>       <runtime state='on'/>
>       <synic state='on'/>
>       <stimer state='on'/>
>       <frequencies state='on'/>
>       <reenlightenment state='on'/>
>       <tlbflush state='on'/>
>     </hyperv>
>     <msrs unknown='ignore'/>
>   </features>
>   <cpu mode='host-model' check='full'>
>     <model fallback='forbid'/>
>   </cpu>
>   <clock offset='utc'>
>     <timer name='rtc' tickpolicy='catchup'/>
>     <timer name='pit' tickpolicy='delay'/>
>     <timer name='hpet' present='yes'/>
>     <timer name='hypervclock' present='yes'/>
>   </clock>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>restart</on_crash>
>   <devices>
>     <emulator>/usr/bin/qemu-system-x86_64</emulator>
>     <disk type='block' device='disk'>
>       <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
>       <source dev='/dev/vm/p541999'/>
>       <backingStore/>
>       <target dev='sda' bus='scsi'/>
>       <iotune>
>         <write_bytes_sec>52428800</write_bytes_sec>
>         <write_bytes_sec_max>314572800</write_bytes_sec_max>
>         <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
>       </iotune>
>       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>     </disk>
>     <disk type='file' device='cdrom'>
>       <driver name='qemu' type='raw'/>
>       <target dev='sdb' bus='sata'/>
>       <readonly/>
>       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>     </disk>
>     <controller type='usb' index='0' model='ich9-ehci1'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci1'>
>       <master startport='0'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci2'>
>       <master startport='2'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci3'>
>       <master startport='4'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
>     </controller>
>     <controller type='virtio-serial' index='0'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
>     </controller>
>     <controller type='scsi' index='0' model='virtio-scsi'>
>       <driver iothread='1'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
>     </controller>
>     <controller type='pci' index='0' model='pcie-root'/>
>     <controller type='sata' index='0'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
>     </controller>
>     <interface type='bridge'>
>       <mac address='00:00:00:54:19:99'/>
>       <source bridge='br0'/>
>       <bandwidth>
>         <inbound average='12500' peak='12500' burst='1024'/>
>         <outbound average='12500' peak='12500' burst='1024'/>
>       </bandwidth>
>       <model type='virtio'/>
>       <filterref filter='clean-traffic'>
>         <parameter name='CTRL_IP_LEARNING' value='none'/>
>         <parameter name='IP' value='1.2.3.4'/>
>       </filterref>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>     </interface>
>     <serial type='pty'>
>       <target type='isa-serial' port='0'>
>         <model name='isa-serial'/>
>       </target>
>     </serial>
>     <console type='pty'>
>       <target type='serial' port='0'/>
>     </console>
>     <channel type='unix'>
>       <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
>       <target type='virtio' name='org.qemu.guest_agent.0'/>
>       <address type='virtio-serial' controller='0' bus='0' port='1'/>
>     </channel>
>     <input type='mouse' bus='ps2'/>
>     <input type='keyboard' bus='ps2'/>
>     <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
>       <listen type='address' address='0.0.0.0'/>
>     </graphics>
>     <video>
>       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
>     </video>
>     <memballoon model='virtio'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
>     </memballoon>
>   </devices>
>   <seclabel type='none' model='none'/>
> </domain>
> 
> ** Affects: qemu
>      Importance: Undecided
>          Status: New
> 
> -- 
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1842038
> 
> Title:
>   qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   [root@kvm-nvme5 qemu]# uname -a
>   Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux
> 
>   [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
>   QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
>   Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
> 
>   [root@kvm-nvme5 qemu]# libvirtd --version
>   libvirtd (libvirt) 5.6.0
> 
>   when migrate 
>   MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
>   virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system
> 
>   we got segfault if we have option <driver iothread='1'/> in config for
>   virtio-scsi controller
> 
>   [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
>   00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
>   x86_64[5575889ad000+951000]
> 
>   On 4.0 we have error with this context(dont save all output)
>   "qemu_coroutine_get_aio_context(co)' failed"
> 
>   If we remove option 
>   <driver iothread='1'/>
>   migrate work fine without segfaults
> 
>   2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
>   LC_ALL=C \
>   PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
>   HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
>   XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
>   XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
>   XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
>   QEMU_AUDIO_DRV=none \
>   /usr/bin/qemu-system-x86_64 \
>   -name guest=p541999,debug-threads=on \
>   -S \
>   -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
>   -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
>   -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
>   quencies,hv-reenlightenment,hv-tlbflush \
>   -m 2148 \
>   -overcommit mem-lock=off \
>   -smp 1,sockets=1,cores=1,threads=1 \
>   -object iothread,id=iothread1 \
>   -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
>   -no-user-config \
>   -nodefaults \
>   -chardev socket,id=charmonitor,fd=44,server,nowait \
>   -mon chardev=charmonitor,id=monitor,mode=control \
>   -rtc base=utc,driftfix=slew \
>   -global kvm-pit.lost_tick_policy=delay \
>   -no-shutdown \
>   -boot menu=on,strict=on \
>   -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
>   -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
>   -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
>   -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
>   -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
>   -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
>   -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
>   -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
>   -drive if=none,id=drive-sata0-0-0,readonly=on \
>   -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
>   -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
>   -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
>   -chardev pty,id=charserial0 \
>   -device isa-serial,chardev=charserial0,id=serial0 \
>   -chardev socket,id=charchannel0,fd=49,server,nowait \
>   -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
>   -vnc 0.0.0.0:6128,password \
>   -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
>   -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
>   -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
>   -msg timestamp=on
>   char device redirected to /dev/pts/5 (label charserial0)
>   2019-08-30 08:27:00.539+0000: shutting down, reason=crashed
> 
>   
>   config:
>   <domain type='kvm'>
>     <name>p541999</name>
>     <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
>     <memory unit='KiB'>2199552</memory>
>     <currentMemory unit='KiB'>2199552</currentMemory>
>     <vcpu placement='static'>1</vcpu>
>     <iothreads>1</iothreads>
>     <resource>
>       <partition>/machine</partition>
>     </resource>
>     <os>
>       <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
>       <boot dev='cdrom'/>
>       <boot dev='hd'/>
>       <bootmenu enable='yes'/>
>     </os>
>     <features>
>       <acpi/>
>       <apic/>
>       <pae/>
>       <hyperv>
>         <relaxed state='on'/>
>         <vapic state='on'/>
>         <spinlocks state='on' retries='4096'/>
>         <vpindex state='on'/>
>         <runtime state='on'/>
>         <synic state='on'/>
>         <stimer state='on'/>
>         <frequencies state='on'/>
>         <reenlightenment state='on'/>
>         <tlbflush state='on'/>
>       </hyperv>
>       <msrs unknown='ignore'/>
>     </features>
>     <cpu mode='host-model' check='full'>
>       <model fallback='forbid'/>
>     </cpu>
>     <clock offset='utc'>
>       <timer name='rtc' tickpolicy='catchup'/>
>       <timer name='pit' tickpolicy='delay'/>
>       <timer name='hpet' present='yes'/>
>       <timer name='hypervclock' present='yes'/>
>     </clock>
>     <on_poweroff>destroy</on_poweroff>
>     <on_reboot>restart</on_reboot>
>     <on_crash>restart</on_crash>
>     <devices>
>       <emulator>/usr/bin/qemu-system-x86_64</emulator>
>       <disk type='block' device='disk'>
>         <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
>         <source dev='/dev/vm/p541999'/>
>         <backingStore/>
>         <target dev='sda' bus='scsi'/>
>         <iotune>
>           <write_bytes_sec>52428800</write_bytes_sec>
>           <write_bytes_sec_max>314572800</write_bytes_sec_max>
>           <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
>         </iotune>
>         <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>       </disk>
>       <disk type='file' device='cdrom'>
>         <driver name='qemu' type='raw'/>
>         <target dev='sdb' bus='sata'/>
>         <readonly/>
>         <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>       </disk>
>       <controller type='usb' index='0' model='ich9-ehci1'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci1'>
>         <master startport='0'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci2'>
>         <master startport='2'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci3'>
>         <master startport='4'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
>       </controller>
>       <controller type='virtio-serial' index='0'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
>       </controller>
>       <controller type='scsi' index='0' model='virtio-scsi'>
>         <driver iothread='1'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
>       </controller>
>       <controller type='pci' index='0' model='pcie-root'/>
>       <controller type='sata' index='0'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
>       </controller>
>       <interface type='bridge'>
>         <mac address='00:00:00:54:19:99'/>
>         <source bridge='br0'/>
>         <bandwidth>
>           <inbound average='12500' peak='12500' burst='1024'/>
>           <outbound average='12500' peak='12500' burst='1024'/>
>         </bandwidth>
>         <model type='virtio'/>
>         <filterref filter='clean-traffic'>
>           <parameter name='CTRL_IP_LEARNING' value='none'/>
>           <parameter name='IP' value='1.2.3.4'/>
>         </filterref>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>       </interface>
>       <serial type='pty'>
>         <target type='isa-serial' port='0'>
>           <model name='isa-serial'/>
>         </target>
>       </serial>
>       <console type='pty'>
>         <target type='serial' port='0'/>
>       </console>
>       <channel type='unix'>
>         <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
>         <target type='virtio' name='org.qemu.guest_agent.0'/>
>         <address type='virtio-serial' controller='0' bus='0' port='1'/>
>       </channel>
>       <input type='mouse' bus='ps2'/>
>       <input type='keyboard' bus='ps2'/>
>       <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
>         <listen type='address' address='0.0.0.0'/>
>       </graphics>
>       <video>
>         <model type='cirrus' vram='16384' heads='1' primary='yes'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
>       </video>
>       <memballoon model='virtio'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
>       </memballoon>
>     </devices>
>     <seclabel type='none' model='none'/>
>   </domain>
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
  2019-09-02  9:40 ` Stefan Hajnoczi
@ 2019-09-02  9:40   ` Stefan Hajnoczi
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2019-09-02  9:40 UTC (permalink / raw)
  To: qemu-devel

On Fri, Aug 30, 2019 at 08:44:35AM -0000, Dmitriy wrote:
> Public bug reported:

Thanks for reporting this.  There have been fixes for virtio-scsi with
iothreads lately, but QEMU 4.1.0 is fairly recent so it should have most
of them.

Can you try qemu.git/master?

> 
> [root@kvm-nvme5 qemu]# uname -a
> Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux
> 
> [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
> QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
> Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
> 
> [root@kvm-nvme5 qemu]# libvirtd --version
> libvirtd (libvirt) 5.6.0
> 
> when migrate 
> MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
> virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system
> 
> we got segfault if we have option <driver iothread='1'/> in config for
> virtio-scsi controller
> 
> [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
> 00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
> x86_64[5575889ad000+951000]
> 
> On 4.0 we have error with this context(dont save all output)
> "qemu_coroutine_get_aio_context(co)' failed"
> 
> If we remove option 
> <driver iothread='1'/>
> migrate work fine without segfaults
> 
> 2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
> LC_ALL=C \
> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
> HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
> XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
> XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
> XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
> QEMU_AUDIO_DRV=none \
> /usr/bin/qemu-system-x86_64 \
> -name guest=p541999,debug-threads=on \
> -S \
> -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
> -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
> -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
> quencies,hv-reenlightenment,hv-tlbflush \
> -m 2148 \
> -overcommit mem-lock=off \
> -smp 1,sockets=1,cores=1,threads=1 \
> -object iothread,id=iothread1 \
> -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
> -no-user-config \
> -nodefaults \
> -chardev socket,id=charmonitor,fd=44,server,nowait \
> -mon chardev=charmonitor,id=monitor,mode=control \
> -rtc base=utc,driftfix=slew \
> -global kvm-pit.lost_tick_policy=delay \
> -no-shutdown \
> -boot menu=on,strict=on \
> -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
> -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
> -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
> -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
> -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
> -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
> -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
> -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
> -drive if=none,id=drive-sata0-0-0,readonly=on \
> -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
> -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
> -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
> -chardev pty,id=charserial0 \
> -device isa-serial,chardev=charserial0,id=serial0 \
> -chardev socket,id=charchannel0,fd=49,server,nowait \
> -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
> -vnc 0.0.0.0:6128,password \
> -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
> -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
> -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
> -msg timestamp=on
> char device redirected to /dev/pts/5 (label charserial0)
> 2019-08-30 08:27:00.539+0000: shutting down, reason=crashed
> 
> 
> config:
> <domain type='kvm'>
>   <name>p541999</name>
>   <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
>   <memory unit='KiB'>2199552</memory>
>   <currentMemory unit='KiB'>2199552</currentMemory>
>   <vcpu placement='static'>1</vcpu>
>   <iothreads>1</iothreads>
>   <resource>
>     <partition>/machine</partition>
>   </resource>
>   <os>
>     <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
>     <boot dev='cdrom'/>
>     <boot dev='hd'/>
>     <bootmenu enable='yes'/>
>   </os>
>   <features>
>     <acpi/>
>     <apic/>
>     <pae/>
>     <hyperv>
>       <relaxed state='on'/>
>       <vapic state='on'/>
>       <spinlocks state='on' retries='4096'/>
>       <vpindex state='on'/>
>       <runtime state='on'/>
>       <synic state='on'/>
>       <stimer state='on'/>
>       <frequencies state='on'/>
>       <reenlightenment state='on'/>
>       <tlbflush state='on'/>
>     </hyperv>
>     <msrs unknown='ignore'/>
>   </features>
>   <cpu mode='host-model' check='full'>
>     <model fallback='forbid'/>
>   </cpu>
>   <clock offset='utc'>
>     <timer name='rtc' tickpolicy='catchup'/>
>     <timer name='pit' tickpolicy='delay'/>
>     <timer name='hpet' present='yes'/>
>     <timer name='hypervclock' present='yes'/>
>   </clock>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>restart</on_crash>
>   <devices>
>     <emulator>/usr/bin/qemu-system-x86_64</emulator>
>     <disk type='block' device='disk'>
>       <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
>       <source dev='/dev/vm/p541999'/>
>       <backingStore/>
>       <target dev='sda' bus='scsi'/>
>       <iotune>
>         <write_bytes_sec>52428800</write_bytes_sec>
>         <write_bytes_sec_max>314572800</write_bytes_sec_max>
>         <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
>       </iotune>
>       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>     </disk>
>     <disk type='file' device='cdrom'>
>       <driver name='qemu' type='raw'/>
>       <target dev='sdb' bus='sata'/>
>       <readonly/>
>       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>     </disk>
>     <controller type='usb' index='0' model='ich9-ehci1'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci1'>
>       <master startport='0'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci2'>
>       <master startport='2'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
>     </controller>
>     <controller type='usb' index='0' model='ich9-uhci3'>
>       <master startport='4'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
>     </controller>
>     <controller type='virtio-serial' index='0'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
>     </controller>
>     <controller type='scsi' index='0' model='virtio-scsi'>
>       <driver iothread='1'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
>     </controller>
>     <controller type='pci' index='0' model='pcie-root'/>
>     <controller type='sata' index='0'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
>     </controller>
>     <interface type='bridge'>
>       <mac address='00:00:00:54:19:99'/>
>       <source bridge='br0'/>
>       <bandwidth>
>         <inbound average='12500' peak='12500' burst='1024'/>
>         <outbound average='12500' peak='12500' burst='1024'/>
>       </bandwidth>
>       <model type='virtio'/>
>       <filterref filter='clean-traffic'>
>         <parameter name='CTRL_IP_LEARNING' value='none'/>
>         <parameter name='IP' value='1.2.3.4'/>
>       </filterref>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>     </interface>
>     <serial type='pty'>
>       <target type='isa-serial' port='0'>
>         <model name='isa-serial'/>
>       </target>
>     </serial>
>     <console type='pty'>
>       <target type='serial' port='0'/>
>     </console>
>     <channel type='unix'>
>       <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
>       <target type='virtio' name='org.qemu.guest_agent.0'/>
>       <address type='virtio-serial' controller='0' bus='0' port='1'/>
>     </channel>
>     <input type='mouse' bus='ps2'/>
>     <input type='keyboard' bus='ps2'/>
>     <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
>       <listen type='address' address='0.0.0.0'/>
>     </graphics>
>     <video>
>       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
>     </video>
>     <memballoon model='virtio'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
>     </memballoon>
>   </devices>
>   <seclabel type='none' model='none'/>
> </domain>
> 
> ** Affects: qemu
>      Importance: Undecided
>          Status: New
> 
> -- 
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1842038
> 
> Title:
>   qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   [root@kvm-nvme5 qemu]# uname -a
>   Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux
> 
>   [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
>   QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
>   Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
> 
>   [root@kvm-nvme5 qemu]# libvirtd --version
>   libvirtd (libvirt) 5.6.0
> 
>   when migrate 
>   MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
>   virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system
> 
>   we got segfault if we have option <driver iothread='1'/> in config for
>   virtio-scsi controller
> 
>   [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
>   00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
>   x86_64[5575889ad000+951000]
> 
>   On 4.0 we have error with this context(dont save all output)
>   "qemu_coroutine_get_aio_context(co)' failed"
> 
>   If we remove option 
>   <driver iothread='1'/>
>   migrate work fine without segfaults
> 
>   2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
>   LC_ALL=C \
>   PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
>   HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
>   XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
>   XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
>   XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
>   QEMU_AUDIO_DRV=none \
>   /usr/bin/qemu-system-x86_64 \
>   -name guest=p541999,debug-threads=on \
>   -S \
>   -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
>   -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
>   -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
>   quencies,hv-reenlightenment,hv-tlbflush \
>   -m 2148 \
>   -overcommit mem-lock=off \
>   -smp 1,sockets=1,cores=1,threads=1 \
>   -object iothread,id=iothread1 \
>   -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
>   -no-user-config \
>   -nodefaults \
>   -chardev socket,id=charmonitor,fd=44,server,nowait \
>   -mon chardev=charmonitor,id=monitor,mode=control \
>   -rtc base=utc,driftfix=slew \
>   -global kvm-pit.lost_tick_policy=delay \
>   -no-shutdown \
>   -boot menu=on,strict=on \
>   -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
>   -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
>   -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
>   -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
>   -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
>   -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
>   -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
>   -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
>   -drive if=none,id=drive-sata0-0-0,readonly=on \
>   -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
>   -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
>   -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
>   -chardev pty,id=charserial0 \
>   -device isa-serial,chardev=charserial0,id=serial0 \
>   -chardev socket,id=charchannel0,fd=49,server,nowait \
>   -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
>   -vnc 0.0.0.0:6128,password \
>   -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
>   -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
>   -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
>   -msg timestamp=on
>   char device redirected to /dev/pts/5 (label charserial0)
>   2019-08-30 08:27:00.539+0000: shutting down, reason=crashed
> 
>   
>   config:
>   <domain type='kvm'>
>     <name>p541999</name>
>     <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
>     <memory unit='KiB'>2199552</memory>
>     <currentMemory unit='KiB'>2199552</currentMemory>
>     <vcpu placement='static'>1</vcpu>
>     <iothreads>1</iothreads>
>     <resource>
>       <partition>/machine</partition>
>     </resource>
>     <os>
>       <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
>       <boot dev='cdrom'/>
>       <boot dev='hd'/>
>       <bootmenu enable='yes'/>
>     </os>
>     <features>
>       <acpi/>
>       <apic/>
>       <pae/>
>       <hyperv>
>         <relaxed state='on'/>
>         <vapic state='on'/>
>         <spinlocks state='on' retries='4096'/>
>         <vpindex state='on'/>
>         <runtime state='on'/>
>         <synic state='on'/>
>         <stimer state='on'/>
>         <frequencies state='on'/>
>         <reenlightenment state='on'/>
>         <tlbflush state='on'/>
>       </hyperv>
>       <msrs unknown='ignore'/>
>     </features>
>     <cpu mode='host-model' check='full'>
>       <model fallback='forbid'/>
>     </cpu>
>     <clock offset='utc'>
>       <timer name='rtc' tickpolicy='catchup'/>
>       <timer name='pit' tickpolicy='delay'/>
>       <timer name='hpet' present='yes'/>
>       <timer name='hypervclock' present='yes'/>
>     </clock>
>     <on_poweroff>destroy</on_poweroff>
>     <on_reboot>restart</on_reboot>
>     <on_crash>restart</on_crash>
>     <devices>
>       <emulator>/usr/bin/qemu-system-x86_64</emulator>
>       <disk type='block' device='disk'>
>         <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
>         <source dev='/dev/vm/p541999'/>
>         <backingStore/>
>         <target dev='sda' bus='scsi'/>
>         <iotune>
>           <write_bytes_sec>52428800</write_bytes_sec>
>           <write_bytes_sec_max>314572800</write_bytes_sec_max>
>           <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
>         </iotune>
>         <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>       </disk>
>       <disk type='file' device='cdrom'>
>         <driver name='qemu' type='raw'/>
>         <target dev='sdb' bus='sata'/>
>         <readonly/>
>         <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>       </disk>
>       <controller type='usb' index='0' model='ich9-ehci1'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci1'>
>         <master startport='0'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci2'>
>         <master startport='2'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
>       </controller>
>       <controller type='usb' index='0' model='ich9-uhci3'>
>         <master startport='4'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
>       </controller>
>       <controller type='virtio-serial' index='0'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
>       </controller>
>       <controller type='scsi' index='0' model='virtio-scsi'>
>         <driver iothread='1'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
>       </controller>
>       <controller type='pci' index='0' model='pcie-root'/>
>       <controller type='sata' index='0'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
>       </controller>
>       <interface type='bridge'>
>         <mac address='00:00:00:54:19:99'/>
>         <source bridge='br0'/>
>         <bandwidth>
>           <inbound average='12500' peak='12500' burst='1024'/>
>           <outbound average='12500' peak='12500' burst='1024'/>
>         </bandwidth>
>         <model type='virtio'/>
>         <filterref filter='clean-traffic'>
>           <parameter name='CTRL_IP_LEARNING' value='none'/>
>           <parameter name='IP' value='1.2.3.4'/>
>         </filterref>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>       </interface>
>       <serial type='pty'>
>         <target type='isa-serial' port='0'>
>           <model name='isa-serial'/>
>         </target>
>       </serial>
>       <console type='pty'>
>         <target type='serial' port='0'/>
>       </console>
>       <channel type='unix'>
>         <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
>         <target type='virtio' name='org.qemu.guest_agent.0'/>
>         <address type='virtio-serial' controller='0' bus='0' port='1'/>
>       </channel>
>       <input type='mouse' bus='ps2'/>
>       <input type='keyboard' bus='ps2'/>
>       <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
>         <listen type='address' address='0.0.0.0'/>
>       </graphics>
>       <video>
>         <model type='cirrus' vram='16384' heads='1' primary='yes'/>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
>       </video>
>       <memballoon model='virtio'>
>         <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
>       </memballoon>
>     </devices>
>     <seclabel type='none' model='none'/>
>   </domain>
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions
>

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1842038

Title:
  qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread

Status in QEMU:
  New

Bug description:
  [root@kvm-nvme5 qemu]# uname -a
  Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux

  [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
  QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
  Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

  [root@kvm-nvme5 qemu]# libvirtd --version
  libvirtd (libvirt) 5.6.0

  when migrate 
  MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
  virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system

  we got segfault if we have option <driver iothread='1'/> in config for
  virtio-scsi controller

  [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
  00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
  x86_64[5575889ad000+951000]

  On 4.0 we have error with this context(dont save all output)
  "qemu_coroutine_get_aio_context(co)' failed"

  If we remove option 
  <driver iothread='1'/>
  migrate work fine without segfaults

  2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
  LC_ALL=C \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
  HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
  XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
  XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
  XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
  QEMU_AUDIO_DRV=none \
  /usr/bin/qemu-system-x86_64 \
  -name guest=p541999,debug-threads=on \
  -S \
  -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
  -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
  -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
  quencies,hv-reenlightenment,hv-tlbflush \
  -m 2148 \
  -overcommit mem-lock=off \
  -smp 1,sockets=1,cores=1,threads=1 \
  -object iothread,id=iothread1 \
  -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
  -no-user-config \
  -nodefaults \
  -chardev socket,id=charmonitor,fd=44,server,nowait \
  -mon chardev=charmonitor,id=monitor,mode=control \
  -rtc base=utc,driftfix=slew \
  -global kvm-pit.lost_tick_policy=delay \
  -no-shutdown \
  -boot menu=on,strict=on \
  -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
  -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
  -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
  -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
  -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
  -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
  -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
  -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
  -drive if=none,id=drive-sata0-0-0,readonly=on \
  -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
  -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
  -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
  -chardev pty,id=charserial0 \
  -device isa-serial,chardev=charserial0,id=serial0 \
  -chardev socket,id=charchannel0,fd=49,server,nowait \
  -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
  -vnc 0.0.0.0:6128,password \
  -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
  -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
  -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
  -msg timestamp=on
  char device redirected to /dev/pts/5 (label charserial0)
  2019-08-30 08:27:00.539+0000: shutting down, reason=crashed

  
  config:
  <domain type='kvm'>
    <name>p541999</name>
    <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
    <memory unit='KiB'>2199552</memory>
    <currentMemory unit='KiB'>2199552</currentMemory>
    <vcpu placement='static'>1</vcpu>
    <iothreads>1</iothreads>
    <resource>
      <partition>/machine</partition>
    </resource>
    <os>
      <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
      <boot dev='cdrom'/>
      <boot dev='hd'/>
      <bootmenu enable='yes'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
      <hyperv>
        <relaxed state='on'/>
        <vapic state='on'/>
        <spinlocks state='on' retries='4096'/>
        <vpindex state='on'/>
        <runtime state='on'/>
        <synic state='on'/>
        <stimer state='on'/>
        <frequencies state='on'/>
        <reenlightenment state='on'/>
        <tlbflush state='on'/>
      </hyperv>
      <msrs unknown='ignore'/>
    </features>
    <cpu mode='host-model' check='full'>
      <model fallback='forbid'/>
    </cpu>
    <clock offset='utc'>
      <timer name='rtc' tickpolicy='catchup'/>
      <timer name='pit' tickpolicy='delay'/>
      <timer name='hpet' present='yes'/>
      <timer name='hypervclock' present='yes'/>
    </clock>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <devices>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
        <source dev='/dev/vm/p541999'/>
        <backingStore/>
        <target dev='sda' bus='scsi'/>
        <iotune>
          <write_bytes_sec>52428800</write_bytes_sec>
          <write_bytes_sec_max>314572800</write_bytes_sec_max>
          <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
        </iotune>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
        <target dev='sdb' bus='sata'/>
        <readonly/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
        <master startport='0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
        <master startport='2'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
        <master startport='4'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
      </controller>
      <controller type='virtio-serial' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </controller>
      <controller type='scsi' index='0' model='virtio-scsi'>
        <driver iothread='1'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
      </controller>
      <controller type='pci' index='0' model='pcie-root'/>
      <controller type='sata' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
      </controller>
      <interface type='bridge'>
        <mac address='00:00:00:54:19:99'/>
        <source bridge='br0'/>
        <bandwidth>
          <inbound average='12500' peak='12500' burst='1024'/>
          <outbound average='12500' peak='12500' burst='1024'/>
        </bandwidth>
        <model type='virtio'/>
        <filterref filter='clean-traffic'>
          <parameter name='CTRL_IP_LEARNING' value='none'/>
          <parameter name='IP' value='1.2.3.4'/>
        </filterref>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      <serial type='pty'>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>
      <channel type='unix'>
        <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
        <target type='virtio' name='org.qemu.guest_agent.0'/>
        <address type='virtio-serial' controller='0' bus='0' port='1'/>
      </channel>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
        <listen type='address' address='0.0.0.0'/>
      </graphics>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
      </memballoon>
    </devices>
    <seclabel type='none' model='none'/>
  </domain>

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [Bug 1842038] Re: qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
  2019-08-30  8:44 [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread Dmitriy
  2019-09-02  9:40 ` Stefan Hajnoczi
@ 2019-09-12  9:23 ` Dmitriy
  2020-11-25 13:00 ` Thomas Huth
  2 siblings, 0 replies; 5+ messages in thread
From: Dmitriy @ 2019-09-12  9:23 UTC (permalink / raw)
  To: qemu-devel

https://lists.gnu.org/archive/html/qemu-block/2019-09/msg00481.html
fix issue and migration work fine

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1842038

Title:
  qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread

Status in QEMU:
  New

Bug description:
  [root@kvm-nvme5 qemu]# uname -a
  Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux

  [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
  QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
  Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

  [root@kvm-nvme5 qemu]# libvirtd --version
  libvirtd (libvirt) 5.6.0

  when migrate 
  MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
  virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system

  we got segfault if we have option <driver iothread='1'/> in config for
  virtio-scsi controller

  [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
  00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
  x86_64[5575889ad000+951000]

  On 4.0 we have error with this context(dont save all output)
  "qemu_coroutine_get_aio_context(co)' failed"

  If we remove option 
  <driver iothread='1'/>
  migrate work fine without segfaults

  2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
  LC_ALL=C \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
  HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
  XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
  XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
  XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
  QEMU_AUDIO_DRV=none \
  /usr/bin/qemu-system-x86_64 \
  -name guest=p541999,debug-threads=on \
  -S \
  -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
  -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
  -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
  quencies,hv-reenlightenment,hv-tlbflush \
  -m 2148 \
  -overcommit mem-lock=off \
  -smp 1,sockets=1,cores=1,threads=1 \
  -object iothread,id=iothread1 \
  -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
  -no-user-config \
  -nodefaults \
  -chardev socket,id=charmonitor,fd=44,server,nowait \
  -mon chardev=charmonitor,id=monitor,mode=control \
  -rtc base=utc,driftfix=slew \
  -global kvm-pit.lost_tick_policy=delay \
  -no-shutdown \
  -boot menu=on,strict=on \
  -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
  -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
  -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
  -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
  -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
  -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
  -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
  -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
  -drive if=none,id=drive-sata0-0-0,readonly=on \
  -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
  -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
  -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
  -chardev pty,id=charserial0 \
  -device isa-serial,chardev=charserial0,id=serial0 \
  -chardev socket,id=charchannel0,fd=49,server,nowait \
  -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
  -vnc 0.0.0.0:6128,password \
  -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
  -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
  -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
  -msg timestamp=on
  char device redirected to /dev/pts/5 (label charserial0)
  2019-08-30 08:27:00.539+0000: shutting down, reason=crashed

  
  config:
  <domain type='kvm'>
    <name>p541999</name>
    <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
    <memory unit='KiB'>2199552</memory>
    <currentMemory unit='KiB'>2199552</currentMemory>
    <vcpu placement='static'>1</vcpu>
    <iothreads>1</iothreads>
    <resource>
      <partition>/machine</partition>
    </resource>
    <os>
      <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
      <boot dev='cdrom'/>
      <boot dev='hd'/>
      <bootmenu enable='yes'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
      <hyperv>
        <relaxed state='on'/>
        <vapic state='on'/>
        <spinlocks state='on' retries='4096'/>
        <vpindex state='on'/>
        <runtime state='on'/>
        <synic state='on'/>
        <stimer state='on'/>
        <frequencies state='on'/>
        <reenlightenment state='on'/>
        <tlbflush state='on'/>
      </hyperv>
      <msrs unknown='ignore'/>
    </features>
    <cpu mode='host-model' check='full'>
      <model fallback='forbid'/>
    </cpu>
    <clock offset='utc'>
      <timer name='rtc' tickpolicy='catchup'/>
      <timer name='pit' tickpolicy='delay'/>
      <timer name='hpet' present='yes'/>
      <timer name='hypervclock' present='yes'/>
    </clock>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <devices>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
        <source dev='/dev/vm/p541999'/>
        <backingStore/>
        <target dev='sda' bus='scsi'/>
        <iotune>
          <write_bytes_sec>52428800</write_bytes_sec>
          <write_bytes_sec_max>314572800</write_bytes_sec_max>
          <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
        </iotune>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
        <target dev='sdb' bus='sata'/>
        <readonly/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
        <master startport='0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
        <master startport='2'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
        <master startport='4'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
      </controller>
      <controller type='virtio-serial' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </controller>
      <controller type='scsi' index='0' model='virtio-scsi'>
        <driver iothread='1'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
      </controller>
      <controller type='pci' index='0' model='pcie-root'/>
      <controller type='sata' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
      </controller>
      <interface type='bridge'>
        <mac address='00:00:00:54:19:99'/>
        <source bridge='br0'/>
        <bandwidth>
          <inbound average='12500' peak='12500' burst='1024'/>
          <outbound average='12500' peak='12500' burst='1024'/>
        </bandwidth>
        <model type='virtio'/>
        <filterref filter='clean-traffic'>
          <parameter name='CTRL_IP_LEARNING' value='none'/>
          <parameter name='IP' value='1.2.3.4'/>
        </filterref>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      <serial type='pty'>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>
      <channel type='unix'>
        <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
        <target type='virtio' name='org.qemu.guest_agent.0'/>
        <address type='virtio-serial' controller='0' bus='0' port='1'/>
      </channel>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
        <listen type='address' address='0.0.0.0'/>
      </graphics>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
      </memballoon>
    </devices>
    <seclabel type='none' model='none'/>
  </domain>

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug 1842038] Re: qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread
  2019-08-30  8:44 [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread Dmitriy
  2019-09-02  9:40 ` Stefan Hajnoczi
  2019-09-12  9:23 ` [Qemu-devel] [Bug 1842038] " Dmitriy
@ 2020-11-25 13:00 ` Thomas Huth
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Huth @ 2020-11-25 13:00 UTC (permalink / raw)
  To: qemu-devel

** Changed in: qemu
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1842038

Title:
  qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread

Status in QEMU:
  Fix Released

Bug description:
  [root@kvm-nvme5 qemu]# uname -a
  Linux kvm-nvme5 4.14.35-1902.4.8.el7uek.x86_64 #2 SMP Sun Aug 4 22:25:18 GMT 2019 x86_64 x86_64 x86_64 GNU/Linux

  [root@kvm-nvme5 qemu]# qemu-system-x86_64 --version
  QEMU emulator version 4.1.0 (qemu-4.1.0-1.el7)
  Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

  [root@kvm-nvme5 qemu]# libvirtd --version
  libvirtd (libvirt) 5.6.0

  when migrate 
  MIGR_OPTS="--live --copy-storage-all --verbose --persistent --undefinesource"
  virsh migrate $MIGR_OPTS p12345 qemu+ssh://$SERV/system

  we got segfault if we have option <driver iothread='1'/> in config for
  virtio-scsi controller

  [1205674.818067] qemu-system-x86[39744]: segfault at 38 ip
  00005575890ad411 sp 00007ffd3c10a0e0 error 6 in qemu-system-
  x86_64[5575889ad000+951000]

  On 4.0 we have error with this context(dont save all output)
  "qemu_coroutine_get_aio_context(co)' failed"

  If we remove option 
  <driver iothread='1'/>
  migrate work fine without segfaults

  2019-08-30 08:25:35.402+0000: starting up libvirt version: 5.6.0, package: 1.el7 (Unknown, 2019-08-06-09:57:56, mock), qemu version: 4.1.0qemu-4.1.0-1.el7, kernel: 4.14.35-1902.4.8.el7uek.x86_64, hostname: kvm-nvme5
  LC_ALL=C \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin \
  HOME=/var/lib/libvirt/qemu/domain-75-p541999 \
  XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.local/share \
  XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.cache \
  XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-75-p541999/.config \
  QEMU_AUDIO_DRV=none \
  /usr/bin/qemu-system-x86_64 \
  -name guest=p541999,debug-threads=on \
  -S \
  -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-75-p541999/master-key.aes \
  -machine pc-q35-4.0,accel=kvm,usb=off,dump-guest-core=off \
  -cpu Cascadelake-Server,ss=on,hypervisor=on,tsc-adjust=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1000,hv-vpindex,hv-runtime,hv-synic,hv-stimer,hv-fre
  quencies,hv-reenlightenment,hv-tlbflush \
  -m 2148 \
  -overcommit mem-lock=off \
  -smp 1,sockets=1,cores=1,threads=1 \
  -object iothread,id=iothread1 \
  -uuid ff20ae7f-8cfe-4ec5-bd50-e78f8a167414 \
  -no-user-config \
  -nodefaults \
  -chardev socket,id=charmonitor,fd=44,server,nowait \
  -mon chardev=charmonitor,id=monitor,mode=control \
  -rtc base=utc,driftfix=slew \
  -global kvm-pit.lost_tick_policy=delay \
  -no-shutdown \
  -boot menu=on,strict=on \
  -device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x5.0x7 \
  -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x5 \
  -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x5.0x1 \
  -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x5.0x2 \
  -device virtio-scsi-pci,iothread=iothread1,id=scsi0,bus=pcie.0,addr=0x9 \
  -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x6 \
  -drive file=/dev/vm/p541999,format=raw,if=none,id=drive-scsi0-0-0-0,cache=none,discard=unmap,aio=threads,throttling.bps-write=52428800,throttling.bps-write-max=314572800,throttling.bps-write-max-length=120 \
  -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2,write-cache=on \
  -drive if=none,id=drive-sata0-0-0,readonly=on \
  -device ide-cd,bus=ide.0,drive=drive-sata0-0-0,id=sata0-0-0,bootindex=1 \
  -netdev tap,fd=47,id=hostnet0,vhost=on,vhostfd=48 \
  -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:54:19:99,bus=pcie.0,addr=0x3 \
  -chardev pty,id=charserial0 \
  -device isa-serial,chardev=charserial0,id=serial0 \
  -chardev socket,id=charchannel0,fd=49,server,nowait \
  -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
  -vnc 0.0.0.0:6128,password \
  -device cirrus-vga,id=video0,bus=pcie.0,addr=0x1 \
  -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x8 \
  -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
  -msg timestamp=on
  char device redirected to /dev/pts/5 (label charserial0)
  2019-08-30 08:27:00.539+0000: shutting down, reason=crashed

  
  config:
  <domain type='kvm'>
    <name>p541999</name>
    <uuid>ff20ae7f-8cfe-4ec5-bd50-e78f8a167414</uuid>
    <memory unit='KiB'>2199552</memory>
    <currentMemory unit='KiB'>2199552</currentMemory>
    <vcpu placement='static'>1</vcpu>
    <iothreads>1</iothreads>
    <resource>
      <partition>/machine</partition>
    </resource>
    <os>
      <type arch='x86_64' machine='pc-q35-4.0'>hvm</type>
      <boot dev='cdrom'/>
      <boot dev='hd'/>
      <bootmenu enable='yes'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
      <hyperv>
        <relaxed state='on'/>
        <vapic state='on'/>
        <spinlocks state='on' retries='4096'/>
        <vpindex state='on'/>
        <runtime state='on'/>
        <synic state='on'/>
        <stimer state='on'/>
        <frequencies state='on'/>
        <reenlightenment state='on'/>
        <tlbflush state='on'/>
      </hyperv>
      <msrs unknown='ignore'/>
    </features>
    <cpu mode='host-model' check='full'>
      <model fallback='forbid'/>
    </cpu>
    <clock offset='utc'>
      <timer name='rtc' tickpolicy='catchup'/>
      <timer name='pit' tickpolicy='delay'/>
      <timer name='hpet' present='yes'/>
      <timer name='hypervclock' present='yes'/>
    </clock>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>restart</on_crash>
    <devices>
      <emulator>/usr/bin/qemu-system-x86_64</emulator>
      <disk type='block' device='disk'>
        <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
        <source dev='/dev/vm/p541999'/>
        <backingStore/>
        <target dev='sda' bus='scsi'/>
        <iotune>
          <write_bytes_sec>52428800</write_bytes_sec>
          <write_bytes_sec_max>314572800</write_bytes_sec_max>
          <write_bytes_sec_max_length>120</write_bytes_sec_max_length>
        </iotune>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <disk type='file' device='cdrom'>
        <driver name='qemu' type='raw'/>
        <target dev='sdb' bus='sata'/>
        <readonly/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>
      <controller type='usb' index='0' model='ich9-ehci1'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci1'>
        <master startport='0'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci2'>
        <master startport='2'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
      </controller>
      <controller type='usb' index='0' model='ich9-uhci3'>
        <master startport='4'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
      </controller>
      <controller type='virtio-serial' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </controller>
      <controller type='scsi' index='0' model='virtio-scsi'>
        <driver iothread='1'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
      </controller>
      <controller type='pci' index='0' model='pcie-root'/>
      <controller type='sata' index='0'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
      </controller>
      <interface type='bridge'>
        <mac address='00:00:00:54:19:99'/>
        <source bridge='br0'/>
        <bandwidth>
          <inbound average='12500' peak='12500' burst='1024'/>
          <outbound average='12500' peak='12500' burst='1024'/>
        </bandwidth>
        <model type='virtio'/>
        <filterref filter='clean-traffic'>
          <parameter name='CTRL_IP_LEARNING' value='none'/>
          <parameter name='IP' value='1.2.3.4'/>
        </filterref>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      <serial type='pty'>
        <target type='isa-serial' port='0'>
          <model name='isa-serial'/>
        </target>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>
      <channel type='unix'>
        <source mode='bind' path='/var/lib/libvirt/qemu/p541999.agent'/>
        <target type='virtio' name='org.qemu.guest_agent.0'/>
        <address type='virtio-serial' controller='0' bus='0' port='1'/>
      </channel>
      <input type='mouse' bus='ps2'/>
      <input type='keyboard' bus='ps2'/>
      <graphics type='vnc' port='12028' autoport='no' listen='0.0.0.0' passwd='SUPERPASSWORD'>
        <listen type='address' address='0.0.0.0'/>
      </graphics>
      <video>
        <model type='cirrus' vram='16384' heads='1' primary='yes'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
      </video>
      <memballoon model='virtio'>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
      </memballoon>
    </devices>
    <seclabel type='none' model='none'/>
  </domain>

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1842038/+subscriptions


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-11-25 13:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-30  8:44 [Qemu-devel] [Bug 1842038] [NEW] qemu 4.0/4.1 segfault on live migrate with virtio-scsi iothread Dmitriy
2019-09-02  9:40 ` Stefan Hajnoczi
2019-09-02  9:40   ` Stefan Hajnoczi
2019-09-12  9:23 ` [Qemu-devel] [Bug 1842038] " Dmitriy
2020-11-25 13:00 ` Thomas Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).