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

[s390x][RHEL10.1][ccw-device] there would be memory leak with virtio_blk disks

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • qemu-kvm-10.0.0-7.el10
    • No
    • Low
    • 1
    • rhel-virt-hwe-s390x
    • ssg_virtualization
    • 17
    • 22
    • 100
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • zKVM CY25 sprint 3
    • Unspecified
    • Unspecified
    • Unspecified
    • s390x
    • None

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

      I was read/write virtio-blk devices on s390x with the system disk, two attditional scsi-hd disk and two addtional virtio-blk disk as storage disk

      What is the impact of this issue to you?

      valgrind shows some error with memory leak

      Please provide the package NVR for which the bug is seen:

      compose id: RHEL-10.1-20250528.9

      host kernel version: kernel-6.12.0-89.el10.s390x

      guest kernel version: kernel-6.12.0-89.el10.s390x

      qemu version: qemu-kvm-10.0.0-4.el10.s390x

      libvirt version: libvirt-11.3.0-1.el10.s390x

      How reproducible is this bug?:

      100%

      Steps to reproduce

      1. boot guest wih valgrind and virtio-scsi-ccw and two virtio-blk devices for storage
      valgrind --trace-children=yes --track-origins=yes --leak-check=full --show-leak-kinds=definite \
       /usr/libexec/qemu-kvm -nographic -accel kvm \
        -drive if=none,file=/tmp/disk0.qcow2,format=qcow2,id=drive_image1 \
        -device virtio-blk-ccw,drive="drive_image1",bootindex=0,loadparm=4 \
        -device virtio-scsi-ccw
      1. run io test for multi-disk
        1. # /home/guest_fio_on_disks.sh -n 10 -s 10g -d 'sdb sdc vdb vda '
      2. stop IO by destroying the VM
        1. # cat /tmp/mpid|xargs kill -SIGINT;pgrep fio|xargs kill -9;sleep 2
      3.  check if there's error reported by valgrind

      Expected results

      no error report by valgrind
       

      Actual results

      errors in valgrind.log [1]

      ==176418== HEAP SUMMARY:
      ==176418== in use at exit: 4,814,632 bytes in 13,618 blocks
      ==176418== total heap usage: 866,822 allocs, 853,204 frees, 218,016,787 bytes allocated
      ==176418==
      ==176418== 9 bytes in 1 blocks are definitely lost in loss record 345 of 2,586
      ==176418== at 0x5152598: malloc (vg_replace_malloc.c:446)
      ==176418== by 0x6135FCB: g_malloc (in /usr/lib64/libglib-2.0.so.0.8000.4)
      ==176418== by 0x6156A7D: g_strdup (in /usr/lib64/libglib-2.0.so.0.8000.4)
      ==176418== by 0x460D651: ??? (in /usr/libexec/qemu-kvm)
      ==176418== by 0x460CD0B: visit_type_str (in /usr/libexec/qemu-kvm)
      ==176418== by 0x437AF1B: ??? (in /usr/libexec/qemu-kvm)
      ==176418== by 0x446A02B: object_property_set (in /usr/libexec/qemu-kvm)
      ==176418== by 0x446EA09: object_property_set_qobject (in /usr/libexec/qemu-kvm) 
      ==176418== by 0x446A149: object_property_set_str (in /usr/libexec/qemu-kvm)
      ==176418== by 0x436C7C7: s390_ipl_prepare_cpu (in /usr/libexec/qemu-kvm)
      ==176418== by 0x437B12F: ??? (in /usr/libexec/qemu-kvm)
      ==176418== by 0x4214223: process_queued_cpu_work (in /usr/libexec/qemu-kvm)
      ==176418==
      ==176418== 9 bytes in 1 blocks are definitely lost in loss record 346 of 2,586
      ==176418== at 0x5152598: malloc (vg_replace_malloc.c:446)
      ==176418== by 0x6135FCB: g_malloc (in /usr/lib64/libglib-2.0.so.0.8000.4)
      ==176418== by 0x6156A7D: g_strdup (in /usr/lib64/libglib-2.0.so.0.8000.4)
      ==176418== by 0x460D651: ??? (in /usr/libexec/qemu-kvm)
      ==176418== by 0x460CD0B: visit_type_str (in /usr/libexec/qemu-kvm)
      ==176418== by 0x437AF1B: ??? (in /usr/libexec/qemu-kvm)
      ==176418== by 0x446A02B: object_property_set (in /usr/libexec/qemu-kvm)
      ==176418== by 0x446EA09: object_property_set_qobject (in /usr/libexec/qemu-kvm)
      ==176418== by 0x446A149: object_property_set_str (in /usr/libexec/qemu-kvm)
      ==176418== by 0x436C29F: s390_ipl_update_diag308 (in /usr/libexec/qemu-kvm)
      ==176418== by 0x4360CC1: handle_diag_308 (in /usr/libexec/qemu-kvm)
      ==176418== by 0x43D15AF: kvm_arch_handle_exit (in /usr/libexec/qemu-kvm)
      ==176418==
      ==176418== LEAK SUMMARY:
      ==176418== definitely lost: 18 bytes in 2 blocks
      ==176418== indirectly lost: 0 bytes in 0 blocks
      ==176418== possibly lost: 26,864 bytes in 73 blocks
      ==176418== still reachable: 4,785,734 bytes in 13,522 blocks
      ==176418== suppressed: 0 bytes in 0 blocks
      ==176418== Reachable blocks (those to which a pointer was found) are not shown.
      ==176418== To see them, rerun with: --leak-check=full --show-leak-kinds=all
      ==176418==
      ==176418== For lists of detected and suppressed errors, rerun with: -s
      ==176418== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
      

              bfu@redhat.com Leo Fu
              bfu@redhat.com Leo Fu
              Thomas Huth Thomas Huth
              Leo Fu Leo Fu
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated: