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

[RHEL10] Anaconda crashes when installing on iSCSI with LUN ID >= 256

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

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • rhel-10.2
    • rhel-9.6, rhel-10.0
    • python-blivet
    • None
    • python-blivet-3.13.0-3.el10
    • None
    • Low
    • Patch, Upstream, TestCaseProvided, EasyFix
    • Customer Facing, Customer Reported
    • rhel-storage-management
    • 11
    • 0
    • False
    • False
    • Hide

      None

      Show
      None
    • No
    • None
    • Bug Fix
    • Hide
      .The Anaconda installer can now use iSCSI LUNs with ID 256 or higher

      Before this update, starting an operating system installation on a system that used iSCSI storage could cause the Anaconda installer to crash. This occurred when the iSCSI Logical Unit Number (LUN) ID was 256 or higher.

      This update includes a fix to the LUN ID parsing logic in the `blivet` library. As a result, installations on systems that use iSCSI targets with LUN IDs of 256 or greater can now proceed.
      Show
      .The Anaconda installer can now use iSCSI LUNs with ID 256 or higher Before this update, starting an operating system installation on a system that used iSCSI storage could cause the Anaconda installer to crash. This occurred when the iSCSI Logical Unit Number (LUN) ID was 256 or higher. This update includes a fix to the LUN ID parsing logic in the `blivet` library. As a result, installations on systems that use iSCSI targets with LUN IDs of 256 or greater can now proceed.
    • Done
    • Done
    • Done
    • Not Required
    • None

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

      When installing a system with the harddisk on iSCSI and its LUN is >= 256, a backtrace shows up when converting the LUN string to integer:

      Traceback (most recent call first):
        File "/usr/lib/python3.9/site-packages/dasbus/client/handler.py", line 497, in _handle_method_error
          raise exception from None
        File "/usr/lib/python3.9/site-packages/dasbus/client/handler.py", line 477, in _get_method_reply
          return self._handle_method_error(error)
        File "/usr/lib/python3.9/site-packages/dasbus/client/handler.py", line 444, in _call_method
          return self._get_method_reply(
        File "/usr/lib64/python3.9/site-packages/pyanaconda/modules/common/task/__init__.py", line 47, in sync_run_task
          task_proxy.Finish()
        File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/lib/storage.py", line 261, in try_populate_devicetree
          sync_run_task(task_proxy)
        File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/gui/spokes/advstorage/iscsi.py", line 107, in run
          try_populate_devicetree()
        File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/gui/spokes/advanced_storage.py", line 811, in _run_dialog_and_refresh
          dialog.run()
        File "/usr/lib64/python3.9/site-packages/pyanaconda/ui/gui/spokes/advanced_storage.py", line 784, in on_add_iscsi_clicked
          self._run_dialog_and_refresh(dialog)
      dasbus.error.DBusError: invalid literal for int() with base 10: '0x0101000000000000'
      
      Local variables in innermost frame:
      self: <dasbus.client.handler.ClientObjectHandler object at 0x7fe1fae99460>
      error: g-io-error-quark: GDBus.Error:not.known.Error.ValueError: invalid literal for int() with base 10: '0x0101000000000000' (36)
      name: not.known.Error.ValueError
      cls: <class 'dasbus.error.DBusError'>
      message: invalid literal for int() with base 10: '0x0101000000000000'
      exception: invalid literal for int() with base 10: '0x0101000000000000'
      

      The reason for this is the LUN string isn't decimal, but hexadecimal.
      This hexadecimal comes from systemd udev code:

       58 static int format_lun_number(sd_device *dev, char **path) {
       :
       72         if (lun < 256)
       73                 /* address method 0, peripheral device addressing with bus id of zero */
       74                 path_prepend(path, "lun-%lu", lun);
       75         else
       76                 /* handle all other lun addressing methods by using a variant of the original lun format */
       77                 path_prepend(path, "lun-0x%04lx%04lx00000000", lun & 0xffff, (lun >> 16) & 0xffff);
      

      What is the impact of this issue to you?

      Customers cannot install RHEL9 or RHEL10

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

      python3-blivet-3.6.0-23.el9_6.noarch
      python3-blivet-3.10.0-16.el10_0.noarch
      Upstream python-blivet (see PR 1425 for a fix)

      How reproducible is this bug?

      Always

      Steps to reproduce

      1. Configure a iSCSI target presenting a LUN with ID >= 256

      Expected results

      Can install

      Actual results

      Traceback.

              vtrefny@redhat.com Vojtěch Trefný
              rhn-support-rmetrich Renaud Métrich
              Vojtěch Trefný Vojtěch Trefný
              Release Test Team Release Test Team
              Angana Chakraborty Angana Chakraborty
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated: