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

[RHEL10 udisks2] udisks2 carsh when run nvme sanitize method

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

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Normal Normal
    • None
    • rhel-10.1
    • udisks2
    • None
    • No
    • None
    • rhel-storage-management
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      ================================================================ FAILURES ================================================================
      _____________________________________________________ Test_Udisks.test_nvme_sanitize _____________________________________________________self = <test_udisks2_02.Test_Udisks object at 0x7fb3d2af6750>, all_local_nvme_device = ['/dev/nvme0n1']
      test_context = <conftest.TestContext object at 0x7fb3d2af4aa0>    def test_nvme_sanitize(self, all_local_nvme_device, test_context):
              udisks = test_context.udisks2
              if not all_local_nvme_device:
                  pytest.skip("No NVMe devices found for testing.")
          
              dev = all_local_nvme_device[0]
              ns = udisks.get_object('/block_devices/' + os.path.basename(dev))
              path = udisks.get_property_raw(ns, '.Block', 'Drive')
              nvme = udisks.get_object(path)
              assert nvme is not None
          
              nvme_controller = dbus.Interface(nvme, dbus_interface=udisks.iface_prefix + '.NVMe.Controller')
          
              try:
                  # Attempt to start a block-erase sanitize operation
                  nvme_controller.SanitizeStart('block-erase', udisks.no_options, timeout=-1)
          
                  # If it starts, poll status for a short time to see if it becomes 'inprogress'
                  status = ""
                  for _ in range(5):
      >               status = udisks.get_property_raw(nvme, '.NVMe.Controller', 'SanitizeStatus')
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^test_udisks2_02.py:1209: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <[AttributeError("'Udisks' object has no attribute '_testMethodName'") raised in repr()] Udisks object at 0x7fb3d3929be0>
      obj = <ProxyObject wrapping <dbus._dbus.SystemBus (system) at 0x7fb3d2ac9610> :1.330 /org/freedesktop/UDisks2/drives/SAMSUNG_MZPLJ1T6HBJR_00007_S55JNC0T900418 at 0x7fb3d2d6ac00>
      iface_suffix = '.NVMe.Controller', prop = 'SanitizeStatus'    def get_property_raw(self, obj, iface_suffix, prop):
              time.sleep(1)
      >       res = obj.Get(self.iface_prefix + iface_suffix, prop, dbus_interface=dbus.PROPERTIES_IFACE)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^../src/udisks2.py:139: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <dbus.proxies._ProxyMethod object at 0x7fb3d2a926f0>, args = ('org.freedesktop.UDisks2.NVMe.Controller', 'SanitizeStatus')
      keywords = {}, reply_handler = None, error_handler = None, ignore_reply = False, signature = 'ss'
      dbus_interface = 'org.freedesktop.DBus.Properties', key = 'org.freedesktop.DBus.Properties.Get'    def __call__(self, *args, **keywords):
              reply_handler = keywords.pop('reply_handler', None)
              error_handler = keywords.pop('error_handler', None)
              ignore_reply = keywords.pop('ignore_reply', False)
              signature = keywords.pop('signature', None)
          
              if reply_handler is not None or error_handler is not None:
                  if reply_handler is None:
                      raise MissingReplyHandlerException()
                  elif error_handler is None:
                      raise MissingErrorHandlerException()
                  elif ignore_reply:
                      raise TypeError('ignore_reply and reply_handler cannot be '
                                      'used together')
          
              dbus_interface = keywords.pop('dbus_interface', self._dbus_interface)
          
              if signature is None:
                  if dbus_interface is None:
                      key = self._method_name
                  else:
                      key = dbus_interface + '.' + self._method_name
          
                  signature = self._proxy._introspect_method_map.get(key, None)
          
              if ignore_reply or reply_handler is not None:
                  self._connection.call_async(self._named_service,
                                              self._object_path,
                                              dbus_interface,
                                              self._method_name,
                                              signature,
                                              args,
                                              reply_handler,
                                              error_handler,
                                              **keywords)
              else:
      >           return self._connection.call_blocking(self._named_service,
                                                        self._object_path,
                                                        dbus_interface,
                                                        self._method_name,
                                                        signature,
                                                        args,
                                                        **keywords)/usr/lib64/python3.12/site-packages/dbus/proxies.py:141: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (dbus.String(':1.330'), dbus.ObjectPath('/org/freedesktop/UDisks2/drives/SAMSUNG_MZPLJ1T6HBJR_00007_S55JNC0T900418', v...evel=1), 'org.freedesktop.DBus.Properties', 'Get', 'ss', ('org.freedesktop.UDisks2.NVMe.Controller', 'SanitizeStatus'))
      kwargs = {'timeout': 100}    def call_long(*args, **kwargs):
              """Do an async call with a very long timeout (unless specified otherwise)"""
              if 'timeout' not in kwargs:
                  kwargs['timeout'] = 100  # seconds
      >       return call(*args, **kwargs)
                     ^^^^^^^^^^^^^^^^^^^^^../src/udisks2.py:73: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <dbus._dbus.SystemBus (system) at 0x7fb3d2ac9610>, bus_name = dbus.String(':1.330')
      object_path = dbus.ObjectPath('/org/freedesktop/UDisks2/drives/SAMSUNG_MZPLJ1T6HBJR_00007_S55JNC0T900418', variant_level=1)
      dbus_interface = 'org.freedesktop.DBus.Properties', method = 'Get', signature = 'ss'
      args = ('org.freedesktop.UDisks2.NVMe.Controller', 'SanitizeStatus'), timeout = 100, byte_arrays = False, kwargs = {}
      get_args_opts = {'byte_arrays': False}
      message = <dbus.lowlevel.MethodCallMessage path: /org/freedesktop/UDisks2/drives/SAMSUNG_MZPLJ1T6HBJR_00007_S55JNC0T900418, iface: org.freedesktop.DBus.Properties, member: Get dest: :1.330>    def call_blocking(self, bus_name, object_path, dbus_interface, method,
                            signature, args, timeout=-1.0,
                            byte_arrays=False, **kwargs):
              """Call the given method, synchronously.
              :Since: 0.81.0
              """
              if object_path == LOCAL_PATH:
                  raise DBusException('Methods may not be called on the reserved '
                                      'path %s' % LOCAL_PATH)
              if dbus_interface == LOCAL_IFACE:
                  raise DBusException('Methods may not be called on the reserved '
                                      'interface %s' % LOCAL_IFACE)
              # no need to validate other args - MethodCallMessage ctor will do
          
              get_args_opts = dict(byte_arrays=byte_arrays)
              if 'utf8_strings' in kwargs:
                  raise TypeError("unexpected keyword argument 'utf8_strings'")
          
              message = MethodCallMessage(destination=bus_name,
                                          path=object_path,
                                          interface=dbus_interface,
                                          method=method)
              # Add the arguments to the function
              try:
                  message.append(signature=signature, *args)
              except Exception as e:
                  logging.basicConfig()
                  _logger.error('Unable to set arguments %r according to '
                                'signature %r: %s: %s',
                                args, signature, e.__class__, e)
                  raise
          
              # make a blocking call
      >       reply_message = self.send_message_with_reply_and_block(
                  message, timeout)
      E       dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable/usr/lib64/python3.12/site-packages/dbus/connection.py:634: DBusException
      ============================================================ warnings summary ============================================================
      test_udisks2_02.py::Test_Udisks::test_nvme_sanitize
        /home/libblockdev/src/luks.py:961: DeprecationWarning: Passing arguments to gi.types.Boxed.__init__() is deprecated. All arguments passed will be ignored.
          ret.append(bd.PluginSpec(name=bd.Plugin.SMART, so_name="libbd_smartmontools.so.3"))test_udisks2_02.py::Test_Udisks::test_nvme_sanitize
        /home/libblockdev/tests/luks.py:961: DeprecationWarning: Passing arguments to gi.types.Boxed.__init__() is deprecated. All arguments passed will be ignored.
          ret.append(bd.PluginSpec(name=bd.Plugin.SMART, so_name="libbd_smartmontools.so.3"))-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      ===================================================== 1 failed, 2 warnings in 26.74s =====================================================
      [root@storageqe-109 tests]# 
       

       

      Aug 11 22:50:24 storageqe-109 kernel: nvme nvme0: rescanning namespaces.
      Aug 11 22:50:26 storageqe-109 udisksd[508752]: udisks_base_job_get_cancellable: assertion 'UDISKS_IS_BASE_JOB (job)' failed
      Aug 11 22:50:26 storageqe-109 kernel: pool-udisksd[519217]: segfault at 38 ip 000055c52beb6cc7 sp 00007fbab55fcbd0 error 4 in udisksd[51cc7,55c52be7e000+4d000] likely on CPU 1 (core 1, socket 0)
      Aug 11 22:50:26 storageqe-109 kernel: Code: f3 48 83 ec 10 64 4c 8b 24 25 28 00 00 00 4c 89 64 24 08 49 89 cc 48 c7 04 24 00 00 00 00 e8 70 ca fc ff 85 c0 75 50 4c 89 e6 <48> 8b 53 38 48 89 e1 48 89 df ff 53 30 48 8b 34 24 85 c0 74 54 48
      Aug 11 22:50:26 storageqe-109 systemd-coredump[519924]: Process 508752 (udisksd) of user 0 terminated abnormally with signal 11/SEGV, processing...
      Aug 11 22:50:26 storageqe-109 systemd[1]: Started systemd-coredump@10-519924-0.service - Process Core Dump (PID 519924/UID 0).
      Aug 11 22:50:26 storageqe-109 systemd-coredump[519925]: Process 508752 (udisksd) of user 0 dumped core.#012#012Module [dso] from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libpci.so.3 from rpm pciutils-3.13.0-6.el10.x86_64#012Module libsgutils2-1.48.so.2 from rpm sg3_utils-1.48-7.el10.x86_64#012Module libled.so.1 from rpm ledmon-1.1.0-2.el10.x86_64#012Module libstoragemgmt.so.1 from rpm libstoragemgmt-1.10.1-4.el10.x86_64#012Module libudisks2_lsm.so from rpm udisks2-2.10.90-5.el10.x86_64#012Module legacy.so from rpm openssl-3.5.1-3.el10.x86_64#012Module libopeniscsiusr.so.0 from rpm iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10.x86_64#012Module libiscsi.so.0 from rpm iscsi-initiator-utils-6.2.1.11-0.git4b3e853.el10.x86_64#012Module libudisks2_iscsi.so from rpm udisks2-2.10.90-5.el10.x86_64#012Module libyaml-0.so.2 from rpm libyaml-0.2.5-16.el10.x86_64#012Module libbd_lvm.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libudisks2_lvm2.so from rpm udisks2-2.10.90-5.el10.x86_64#012Module libbd_smart.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libnvme.so.1 from rpm libnvme-1.13-1.el10.x86_64#012Module libbd_nvme.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libcom_err.so.2 from rpm e2fsprogs-1.47.1-4.el10.x86_64#012Module libe2p.so.2 from rpm e2fsprogs-1.47.1-4.el10.x86_64#012Module libext2fs.so.2 from rpm e2fsprogs-1.47.1-4.el10.x86_64#012Module libbd_fs.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libfdisk.so.1 from rpm util-linux-2.40.2-10.el10.x86_64#012Module libbd_part.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libgmp.so.10 from rpm gmp-6.2.1-12.el10.x86_64#012Module libmpfr.so.6 from rpm mpfr-4.2.1-5.el10.x86_64#012Module libbytesize.so.1 from rpm libbytesize-2.10-5.el10.x86_64#012Module libbd_mdraid.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libjson-c.so.5 from rpm json-c-0.18-3.el10.x86_64#012Module libdevmapper.so.1.02 from rpm lvm2-2.03.32-3.el10.x86_64#012Module libvolume_key.so.1 from rpm volume_key-0.3.12-25.el10.x86_64#012Module libkeyutils.so.1 from rpm keyutils-1.6.3-5.el10.x86_64#012Module libnspr4.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libplc4.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libplds4.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libnssutil3.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libnss3.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libsmime3.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libssl3.so from rpm nss-3.112.0-3.el10_0.x86_64#012Module libcryptsetup.so.12 from rpm cryptsetup-2.7.5-2.el10.x86_64#012Module libbd_crypto.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libbd_loop.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libbd_swap.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libcrypto.so.3 from rpm openssl-3.5.1-3.el10.x86_64#012Module liblzma.so.5 from rpm xz-5.6.2-4.el10_0.x86_64#012Module libzstd.so.1 from rpm zstd-1.5.5-9.el10.x86_64#012Module libpcre2-8.so.0 from rpm pcre2-10.44-1.el10.3.x86_64#012Module libffi.so.8 from rpm libffi-3.4.4-10.el10.x86_64#012Module libz.so.1 from rpm zlib-ng-2.2.3-2.el10.x86_64#012Module libcap.so.2 from rpm libcap-2.69-7.el10.x86_64#012Module libattr.so.1 from rpm attr-2.5.2-5.el10.x86_64#012Module libselinux.so.1 from rpm libselinux-3.9-1.el10.x86_64#012Module libkmod.so.2 from rpm kmod-31-11.el10.x86_64#012Module libudev.so.1 from rpm systemd-257-11.el10.x86_64#012Module libglib-2.0.so.0 from rpm glib2-2.80.4-4.el10_0.6.x86_64#012Module libgobject-2.0.so.0 from rpm glib2-2.80.4-4.el10_0.6.x86_64#012Module libgio-2.0.so.0 from rpm glib2-2.80.4-4.el10_0.6.x86_64#012Module libudisks2.so.0 from rpm udisks2-2.10.90-5.el10.x86_64#012Module libsystemd.so.0 from rpm systemd-257-11.el10.x86_64#012Module libacl.so.1 from rpm acl-2.3.2-4.el10.x86_64#012Module libpolkit-gobject-1.so.0 from rpm polkit-125-3.el10.x86_64#012Module libuuid.so.1 from rpm util-linux-2.40.2-10.el10.x86_64#012Module libmount.so.1 from rpm util-linux-2.40.2-10.el10.x86_64#012Module libblkid.so.1 from rpm util-linux-2.40.2-10.el10.x86_64#012Module libbd_utils.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libblockdev.so.3 from rpm libblockdev-3.2.0-5.el10.x86_64#012Module libgudev-1.0.so.0 from rpm libgudev-238-7.el10.x86_64#012Module libgmodule-2.0.so.0 from rpm glib2-2.80.4-4.el10_0.6.x86_64#012Stack trace of thread 519217:#012#0  0x000055c52beb6cc7 n/a (n/a + 0x0)#012ELF object binary architecture: AMD x86-64
      Aug 11 22:50:26 storageqe-109 systemd[1]: systemd-coredump@10-519924-0.service: Deactivated successfully.
      Aug 11 22:50:26 storageqe-109 systemd[1]: systemd-coredump@10-519924-0.service: Consumed 92ms CPU time, 94.3M memory peak.
      Aug 11 22:50:26 storageqe-109 systemd[1]: udisks2.service: Main process exited, code=dumped, status=11/SEGV
      Aug 11 22:50:26 storageqe-109 systemd[1]: udisks2.service: Failed with result 'core-dump'.
      Aug 11 22:50:26 storageqe-109 systemd[1]: udisks2.service: Consumed 1min 7.002s CPU time, 1G memory peak.
      Aug 11 22:57:47 storageqe-109 systemd[1]: Starting fwupd-refresh.service - Refresh fwupd metadata and update motd...
      Aug 11 22:57:47 storageqe-109 systemd[1]: Starting udisks2.service - Disk Manager...
      Aug 11 22:57:47 storageqe-109 udisksd[520244]: udisks daemon version 2.10.90 starting
      Aug 11 22:57:47 storageqe-109 systemd[1]: Started udisks2.service - Disk Manager.
       
      [root@storageqe-109 tests]# nvme list
      Node                  Generic               SN                   Model                                    Namespace  Usage                      Format           FW Rev  
      --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------
      /dev/nvme0n1          /dev/ng0n1            S55JNC0T900418       SAMSUNG MZPLJ1T6HBJR-00007               0x1          1.60  TB /   1.60  TB    512   B +  0 B   EPK9CB5Q
      [root@storageqe-109 tests]# 
      [root@storageqe-109 tests]# rpm -qa |grep udisks
      libudisks2-2.10.90-5.el10.x86_64
      udisks2-2.10.90-5.el10.x86_64
      udisks2-debugsource-2.10.90-5.el10.x86_64
      udisks2-debuginfo-2.10.90-5.el10.x86_64
      libudisks2-devel-2.10.90-5.el10.x86_64
      udisks2-lvm2-2.10.90-5.el10.x86_64
      udisks2-iscsi-2.10.90-5.el10.x86_64
      udisks2-lsm-2.10.90-5.el10.x86_64
      libudisks2-debuginfo-2.10.90-5.el10.x86_64
      udisks2-iscsi-debuginfo-2.10.90-5.el10.x86_64
      udisks2-lsm-debuginfo-2.10.90-5.el10.x86_64
      udisks2-lvm2-debuginfo-2.10.90-5.el10.x86_64
      [root@storageqe-109 tests]# uname -a
      Linux storageqe-109.rhts.eng.pek2.redhat.com 6.12.0-116.el10.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug  1 19:40:37 EDT 2025 x86_64 GNU/Linux
      [root@storageqe-109 tests]#   

              tbzatek Tomáš Bžatek
              guazhang@redhat.com Guangwu Zhang
              Tomáš Bžatek Tomáš Bžatek
              Guangwu Zhang Guangwu Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: