[Bug 1988366] Re: python-rtslib-fb needs to handle new attribute cpus_allowed_list

Launchpad Bug Tracker 1988366 at bugs.launchpad.net
Mon Jul 15 10:35:56 UTC 2024


This bug was fixed in the package python-rtslib-fb - 2.1.74-0ubuntu4.1

---------------
python-rtslib-fb (2.1.74-0ubuntu4.1) jammy; urgency=medium

  [ Sergio Durigan Junior ]
  * d/p/lp1988366-handle-target-kernel-module-new-attribute-cpus_allow.patch
    Handle new Linux kernel module attribute "cpus_allowed_list", fixing the
    error "Not a directory: '/sys/kernel/config/target/iscsi/cpus_allowed_list'"
    (LP: #1988366)

 -- Mauricio Faria de Oliveira <mfo at canonical.com>  Mon, 10 Jun 2024
15:05:54 -0300

** Changed in: python-rtslib-fb (Ubuntu Jammy)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-rtslib-fb in Ubuntu.
https://bugs.launchpad.net/bugs/1988366

Title:
  python-rtslib-fb needs to handle new attribute cpus_allowed_list

Status in python-rtslib-fb package in Ubuntu:
  Fix Released
Status in python-rtslib-fb source package in Jammy:
  Fix Released

Bug description:
  [ Impact ]

  * getting information about "attached_luns" fails via python3-rtslib-
  fb when running the HWE kernel on jammy due to the new kernel module
  attribute cpus_allowed_list

  * As a consequence, the following operations on jammy fails:

    - creating an iSCSI target with Ceph-iSCSI service
     https://docs.ceph.com/en/quincy/rbd/iscsi-target-cli/

  (LUN.allocate) created test-iscsi-pool/disk_1 successfully
  (LUN.add_dev_to_lio) Adding image 'test-iscsi-pool/disk_1' to LIO backstore user:rbd
  tcmu-runner: tcmu_rbd_open:1162 rbd/test-iscsi-pool.disk_1: address: {172.16.12.185:0/2337103748}
  (LUN.add_dev_to_lio) Successfully added test-iscsi-pool/disk_1 to LIO
  LUN alloc problem - Delete from LIO/backstores failed - [Errno 20] Not a directory: '/sys/kernel/config/target/iscsi/cpus_allowed_list'

    - targetcli clearconfig confirm=True

  [Errno 20] Not a directory:
  '/sys/kernel/config/target/iscsi/cpus_allowed_list'

    - targetctl clear

  $ sudo targetctl clear
  Traceback (most recent call last):
    File "/usr/bin/targetctl", line 82, in <module>
      main()
    File "/usr/bin/targetctl", line 79, in main
      funcs[sys.argv[1]](savefile)
    File "/usr/bin/targetctl", line 57, in clear
      RTSRoot().clear_existing(confirm=True)
    File "/usr/lib/python3/dist-packages/rtslib_fb/root.py", line 318, in clear_existing
      so.delete()
    File "/usr/lib/python3/dist-packages/rtslib_fb/tcm.py", line 269, in delete
      for lun in self._gen_attached_luns():
    File "/usr/lib/python3/dist-packages/rtslib_fb/tcm.py", line 215, in _gen_attached_luns
      for tpgt_dir in listdir(tpgts_base):
  NotADirectoryError: [Errno 20] Not a directory: '/sys/kernel/config/target/iscsi/cpus_allowed_list'

  
  [ Test Plan ]

  ## create two VMs, one for the GA kernel and the other for the HWE kernel
  for kernel in ga hwe; do
      uvt-kvm create \
          --cpu=4 --memory=4096 \
          rtslib-fb-sru-testing-$kernel \
          release=jammy

      uvt-kvm wait rtslib-fb-sru-testing-$kernel
      uvt-kvm ssh rtslib-fb-sru-testing-$kernel 'sudo apt-get update && sudo apt-get upgrade -y'
      uvt-kvm ssh rtslib-fb-sru-testing-$kernel 'sudo apt-get install -y python3-rtslib-fb targetcli-fb'
  done

  ## Install the HWE kernel and reboot
  uvt-kvm ssh rtslib-fb-sru-testing-hwe 'sudo apt-get install -y linux-generic-hwe-22.04 && sudo reboot'

  
  ## Upgrade python3-rtslib-fb to the -proposed one

  
  ## create the test iSCSI target based on the quickstart guide in targetcli(8)
  ## https://manpages.ubuntu.com/manpages/jammy/en/man8/targetcli.8.html
  cat <<EOF | sudo targetcli
  backstores/fileio create test /tmp/test.img 100m;
  iscsi/ create iqn.2006-04.com.example:test-target;
  cd iscsi/iqn.2006-04.com.example:test-target/tpg1/;
  luns/ create /backstores/fileio/test;
  set attribute generate_node_acls=1;
  EOF

  ## confirm the test iSCSI target is discoverable locally and confirm the discovered one is output in the terminal
  sudo iscsiadm --mode discoverydb --type sendtargets \
      --portal 127.0.0.1 --discover

  ## tear down the test iSCSI target and confirm there is no error returned
  sudo targetcli clearconfig confirm=True

  
  [ Where problems could occur ]

  The worst case scenario is it could cause a regression to the
  environment where the GA kernel is still running since the fix is for
  newer kernels.

  To mitigate the risk, the same test case will be run for both GA
  kernel and HWE kernel machines with -proposed package.

  [ Other Info ]
   
  * upstream fix https://github.com/open-iscsi/rtslib-fb/commit/8d2543c4da62e962661011fea5b19252b9660822

  
  ====

  
  python-rtslib-fb needs to properly handle the new kernel module attribute cpus_allowed_list.

  This is causing a problem during targetcli-fb's autopkgtest on s390x:

  https://autopkgtest.ubuntu.com/results/autopkgtest-
  kinetic/kinetic/s390x/t/targetcli-fb/20220830_075622_04113@/log.gz

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-rtslib-fb/+bug/1988366/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list