Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-43410

aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize

    • qemu-kvm-9.0.0-3.el10
    • Yes
    • Important
    • Regression, CustomerScenariosInitiative
    • rhel-sst-virtualization-storage
    • ssg_virtualization
    • 1
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • x86_64
    • Linux
    • None

       
      (clone from RHEL-38697,same issue exist on rhel10-beta)
       

      What were you trying to do that didn't work?

      Hotplug disk with aio=native and iothread-vq-mapping enabled
      qemu crash on Assertion `laiocb->co->ctx == laiocb->ctx->aio_context' failed when do block_resize on it

       

      Stack trace of thread 1011585:
                      #0  0x00007f5ff848b94c __pthread_kill_implementation (libc.so.6 + 0x8b94c)
                      #1  0x00007f5ff843e646 raise (libc.so.6 + 0x3e646)
                      #2  0x00007f5ff84287f3 abort (libc.so.6 + 0x287f3)
                      #3  0x00007f5ff842871b __assert_fail_base.cold (libc.so.6 + 0x2871b)
                      #4  0x00007f5ff8437386 __assert_fail (libc.so.6 + 0x37386)
                      #5  0x0000564c8f6953ce qemu_laio_process_completion (qemu-kvm + 0x8f13ce)
                      #6  0x0000564c8f69547d qemu_laio_process_completions (qemu-kvm + 0x8f147d)
                      #7  0x0000564c8f694dda qemu_laio_completion_cb.llvm.13934463131414242353 (qemu-kvm + >
                      #8  0x0000564c8f7f96c1 aio_dispatch_handler.llvm.10985774631750976287 (qemu-kvm + 0xa>
                      #9  0x0000564c8f7f836c aio_dispatch (qemu-kvm + 0xa5436c)
                      #10 0x0000564c8f8182bf aio_ctx_dispatch (qemu-kvm + 0xa742bf)
                      #11 0x00007f5ff8d19f4f g_main_context_dispatch (libglib-2.0.so.0 + 0x54f4f)
                      #12 0x0000564c8f8192de main_loop_wait (qemu-kvm + 0xa752de)
                      #13 0x0000564c8f311f14 qemu_main_loop (qemu-kvm + 0x56df14)
                      #14 0x0000564c8f142e1a qemu_default_main (qemu-kvm + 0x39ee1a)
                      #15 0x00007f5ff8429590 __libc_start_call_main (libc.so.6 + 0x29590)
                      #16 0x00007f5ff8429640 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x29640)

       

      Please provide the package NVR for which bug is seen:
      Red Hat Enterprise Linux release 10.0 Beta (Plow)
      6.9.0-0.rc2.1.el10.x86_64
      qemu-kvm-9.0.0-2.el10.x86_64
      seabios-bin-1.16.3-3.el10.noarch
      edk2-ovmf-20240214-1.el10.noarch
      libvirt-10.0.0-3.el10.x86_64

      How reproducible:
      100%

      Steps to reproduce

      1.Create data image
      qemu-img create -f qcow2 /home/kvm_autotest_root/images/storage0.qcow2 10G
      
      2.Boot VM
       /usr/libexec/qemu-kvm \
           -name 'avocado-vt-vm1'  \
           -machine q35,memory-backend=mem-machine_mem \
           -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \
           -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}'  \
           -nodefaults \
           -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \
           -m 12G \
           -object '{"size": 12884901888, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}'  \
           -smp 56,maxcpus=56,cores=28,threads=1,dies=1,sockets=2  \
           -cpu 'Icelake-Server-noTSX',+kvm_pv_unhalt \
           -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \
           -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-1", "addr": "0x0"}' \
           -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \
           -object '{"qom-type": "iothread", "id": "iothread0"}' \
           \
           -blockdev '{"node-name": "file_image1", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "native", "filename": "/home/kvm_autotest_root/images/rhel950-64-virtio.qcow2", "cache": {"direct": true, "no-flush": false}}' \
           -blockdev '{"node-name": "drive_image1", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_image1"}' \
           -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \
           -device '{"driver": "virtio-blk-pci", "id": "image1", "drive": "drive_image1", "bootindex": 0, "write-cache": "on", "iothread-vq-mapping": [{"iothread": "iothread0"}], "bus": "pcie-root-port-2", "addr": "0x0"}' \
           \
           -device '{"id": "pcie_extra_root_port_0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x3", "chassis": 5}' \
          \
           -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \
           -device '{"driver": "virtio-net-pci", "mac": "9a:5f:37:63:a3:f7", "id": "idbuqpiH", "netdev": "idoDIRtd", "bus": "pcie-root-port-3", "addr": "0x0"}' \
           -netdev  '{"id": "idoDIRtd", "type": "tap", "vhost": true}'  \
           -rtc base=utc,clock=host,driftfix=slew  \
           -boot menu=off,order=cdn,once=c,strict=off \
           -enable-kvm \
           \
           -vnc :5 \
           -monitor stdio \
           -qmp tcp:0:5955,server=on,wait=off \
           -boot menu=on,reboot-timeout=1000,strict=off \
           \
      
      3.hotplug disk with iothread-vq-mapping enable
      {"execute": "blockdev-add", "arguments": {"node-name": "file_stg0", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "native", "filename": "/home/kvm_autotest_root/images/storage0.qcow2", "cache": {"direct": true, "no-flush": false}}, "id": "qxJYFuAs"}
      {"return": {}, "id": "qxJYFuAs"}
      
      {"execute": "blockdev-add", "arguments": {"node-name": "drive_stg0", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_stg0"}, "id": "o18irOsK"}
      {"return": {}, "id": "o18irOsK"}
      
      {"execute": "device_add", "arguments": {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "serial": "TARGET_DISK0", "iothread-vq-mapping": [{"iothread": "iothread0"}], "bus": "pcie_extra_root_port_0", "addr": "0x0"}, "id": "8WvXBa4Q"}
      {"return": {}, "id": "8WvXBa4Q"}
      
      
      4. block_resize on new hotplugged disk
      {"execute": "block_resize", "arguments": {"node-name": "drive_stg0", "size": 16106127360}}
      
      

      Expected results
      resize succeed

      Actual results
      Qemu crash

      Other info:
      1. It does not hit this issue when enable iothread
      {"execute": "device_add", "arguments":

      {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "serial": "TARGET_DISK0", "iothread": "iothread0", "bus": "pcie_extra_root_port_0", "addr": "0x0"}

      , "id": "8WvXBa4Q"}

      2. It does not hit this issue when aio=threads

      3. It does not hit this issue on
      qemu-kvm-8.2.0-11.el9_4.2.x86_64

              kwolf@redhat.com Kevin Wolf
              qingwangrh qing wang
              virt-maint virt-maint
              qing wang qing wang
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: