Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-2936

BZ#1794249 cinder retype(with migration) from unencrypted to encrypted volume type in Ceph backend fails

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • python-os-brick
    • False
    • False
    • Committed
    • Committed
    • Committed
    • No
    • Undefined
    • Moderate

      Description of problem:
      retype from non encrypted to encrypted volume in ceph backend fails

      Version-Release number of selected component (if applicable):
      RHOSP13 latest minor version

      docker exec -it $(docker ps|grep -i volume |awk '

      {print $1}

      ' ) bash
      ()[root@controller-0 /]# rpm -qa|grep -i cinder
      python-cinder-12.0.8-3.el7ost.noarch
      puppet-cinder-12.4.1-5.el7ost.noarch
      openstack-cinder-12.0.8-3.el7ost.noarch
      python2-cinderclient-3.5.0-1.el7ost.noarch
      ()[root@controller-0 /]# rpm -qa|grep -i os-brick
      python2-os-brick-2.3.8-1.el7ost.noarch

      How reproducible:
      Always

      Steps to Reproduce:
      1. deploy RHOSP with cinder backend ceph, deploy barbican
      2. create volume in ceph backend
      3. create volume type for encryption

      openstack volume type create --encryption-provider nova.volume.encryptors.luks.LuksEncryptor --encryption-cipher aes-xts-plain64 --encryption-key-size 256 --encryption-control-location front-end LuksEncryptor-Template-256

      4. try to retype

      #cinder retype test-encrypt LuksEncryptor-Template-256 --migration-policy on-demand

      cinder type-list
      ------------------------------------------------------------------------------------+

      ID Name Description Is_Public

      ------------------------------------------------------------------------------------+

      097fb345-e7af-4d41-bb4b-1c81ddba36f0 tripleo_lvm
      True
      151cec8d-7592-48b9-809d-32f9cad9b85c LuksEncryptor-Template-256
      True
      1bd2cf2a-0a98-454c-abd6-c929fccaf461 tripleo_hpelefthand
      True
      1f5cf5ff-4ded-4283-9837-0fa9f2cc1999 tripleo_nfs
      True
      535c37f4-a1c0-4fd6-a257-d4adf36eff4d tripleo_ceph
      True

      ------------------------------------------------------------------------------------+

      openstack volume show test-encrypt
      --------------------------------------------------------------------+

      Field Value

      --------------------------------------------------------------------+

      attachments []
      availability_zone nova
      bootable false
      consistencygroup_id None
      created_at 2020-01-21T14:08:41.000000
      description None
      encrypted False
      id 119b36f2-1410-4a42-b04a-7a78769ed2be
      migration_status error <<-- after retype failed
      multiattach False
      name test-encrypt
      os-vol-host-attr:host hostgroup@tripleo_ceph#tripleo_ceph
      os-vol-mig-status-attr:migstat error
      os-vol-mig-status-attr:name_id None
      os-vol-tenant-attr:tenant_id a578afa9dad2434182d053c07ffba4b8
      properties  
      replication_status None
      size 1
      snapshot_id None
      source_volid None
      status available
      type tripleo_ceph
      updated_at 2020-01-21T14:44:03.000000
      user_id f9ca5a979d024d58aba8804b29f9c804

      --------------------------------------------------------------------+

      Actual results:
      fails with traceback

      2020-01-21 14:26:04.423 58 INFO cinder.volume.manager [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Remove volume export completed successfully.
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Failed to copy volume 119b36f2-1410-4a42-b04a-7a78769ed2
      be to 4bd9f446-23d0-4f9c-b138-ec9116203902: AttributeError: 'RBDVolumeIOWrapper' object has no attribute 'rfind'
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager Traceback (most recent call last):
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2164, in _migrate_volume_generic
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager self._copy_volume_data(ctxt, volume, new_volume, remote='dest')
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2044, in _copy_volume_data
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager attach_encryptor=attach_encryptor)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 1991, in _attach_volume
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager force=True)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager self.force_reraise()
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 1985, in _attach_volume
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager encryption)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 535, in brick_attach_volume_encryptor
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager **encryption)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 527, in brick_get_encryptor
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager *args, **kwargs)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/os_brick/encryptors/_init_.py", line 91, in get_volume_encryptor
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager **kwargs)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/oslo_utils/importutils.py", line 44, in import_object
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager return import_class(import_str)(*args, **kwargs)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/os_brick/encryptors/luks.py", line 61, in _init_
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager *args, **kwargs)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/os_brick/encryptors/cryptsetup.py", line 60, in _init_
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager self.dev_name = 'crypt-%s' % os.path.basename(self.symlink_path)
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager File "/usr/lib64/python2.7/posixpath.py", line 121, in basename
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager i = p.rfind('/') + 1
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager AttributeError: 'RBDVolumeIOWrapper' object has no attribute 'rfind'
      2020-01-21 14:26:04.424 58 ERROR cinder.volume.manager
      2020-01-21 14:26:04.474 58 DEBUG cinder.coordination [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Lock "/var/lib/cinder/cinder-4bd9f446-23d0-4f9c-b138-ec9116203902-delete_volume" acquired by "delete_volume" :: waited 0.001s _synchronized /usr/lib/python2.7/site-packages/cinder/coordination.py:150
      2020-01-21 14:26:04.584 58 DEBUG cinder.volume.drivers.rbd [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] connecting to ceph (timeout=-1). _do_conn /usr/lib/python2.7/site-packages/cinder/volume/drivers/rbd.py:337
      2020-01-21 14:26:04.675 58 DEBUG cinder.volume.drivers.rbd [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] volume has no backup snaps _delete_backup_snaps /usr/lib/python2.7/site-packages/cinder/volume/drivers/rbd.py:950
      2020-01-21 14:26:04.677 58 DEBUG cinder.volume.drivers.rbd [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Volume volume-4bd9f446-23d0-4f9c-b138-ec9116203902 is not a clone. _get_clone_info /usr/lib/python2.7/site-packages/cinder/volume/drivers/rbd.py:973
      2020-01-21 14:26:04.682 58 DEBUG cinder.volume.drivers.rbd [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] deleting rbd volume volume-4bd9f446-23d0-4f9c-b138-ec9116203902 delete_volume /usr/lib/python2.7/site-packages/cinder/volume/drivers/rbd.py:1071
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Exception during message handling: AttributeError: 'RBDVolumeIOWrapper' object has no attribute 'rfind'
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 166, in _process_incoming
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 220, in dispatch
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 190, in _do_dispatch
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2826, in retype
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server new_reservations, status_update)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.force_reraise()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2822, in retype
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server new_type_id=new_type_id)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2431, in migrate_volume
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server volume.save()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.force_reraise()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2424, in migrate_volume
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self._migrate_volume_generic(ctxt, volume, host, new_type_id)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2186, in _migrate_volume_generic
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server new_volume)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.force_reraise()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2164, in _migrate_volume_generic
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self._copy_volume_data(ctxt, volume, new_volume, remote='dest')
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2044, in _copy_volume_data
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server attach_encryptor=attach_encryptor)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 1991, in _attach_volume
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server force=True)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.force_reraise()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in 2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2164, in _migrate_volume_generic
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self._copy_volume_data(ctxt, volume, new_volume, remote='dest')
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 2044, in _copy_volume_data
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server attach_encryptor=attach_encryptor)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 1991, in _attach_volume
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server force=True)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in _exit_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.force_reraise()
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 1985, in _attach_volume
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server encryption)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 535, in brick_attach_volume_encryptor
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server **encryption)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 527, in brick_get_encryptor
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server *args, **kwargs)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/encryptors/_init_.py", line 91, in get_volume_encryptor
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server **kwargs)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/importutils.py", line 44, in import_object
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server return import_class(import_str)(*args, **kwargs)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/encryptors/luks.py", line 61, in _init_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server *args, **kwargs)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/encryptors/cryptsetup.py", line 60, in _init_
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server self.dev_name = 'crypt-%s' % os.path.basename(self.symlink_path)
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server File "/usr/lib64/python2.7/posixpath.py", line 121, in basename
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server i = p.rfind('/') + 1
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server AttributeError: 'RBDVolumeIOWrapper' object has no attribute 'rfind'
      2020-01-21 14:26:04.738 58 ERROR oslo_messaging.rpc.server
      2020-01-21 14:26:04.799 58 INFO cinder.volume.manager [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Deleted volume successfully.
      2020-01-21 14:26:04.800 58 DEBUG cinder.coordination [req-31e8a87c-71a8-4e43-b0fb-c00632db5f02 f9ca5a979d024d58aba8804b29f9c804 a578afa9dad2434182d053c07ffba4b8 - default default] Lock "/var/lib/cinder/cinder-4bd9f446-23d0-4f9c-b138-ec9116203902-delete_volume" released by "delete_volume" :: held 0.326s _synchronized /usr/lib/python2.7/site-packages/cinder/coordination.py:162
      force_reraise

      Expected results:

      re - type should complete

      Additional info:

            cinder-bugs@redhat.com cinder-bugs@redhat.com
            jira-bugzilla-migration RH Bugzilla Integration
            rhos-dfg-storage-squad-cinder
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: