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

Creating image from volume fails when cinder backend is nfs and volume has snapshot

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • 18.0.z
    • openstack-cinder
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • None
    • Important

      To Reproduce Steps to reproduce the behavior:

      1. Deploy RHOSO 18.0 with Generic NFS Cinder backend
      2. Create a volume 
      3. Create an image from the volume using "openstack image create --volume <volume> <image>".
        This succeed
      4. Create a snapshot from the volume using "openstack volume snapshot create --volume <volume> <snapshot>
      5. Create an image from the volume using "openstack image create --volume <volume> <image>". But this time it fails with the following error
        WARNING cinder.image.image_utils [...] Image/Volume /var/lib/cinder/mnt/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/volume-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa.bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb failed safety check
        DEBUG cinder.coordination [...] Lock "/var/lib/cinder/cinder-nfs-aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" released by "copy_volume_to_image" :: held 1.384s _synchronized /usr/lib/python3.9/site-packages/cinder/coordination.py:208
        ERROR cinder.volume.manager [...] Upload volume to image encountered an error (image-id: cccccccc-cccc-cccc-cccc-cccccccccccc).: cinder.exception.Invalid: Unacceptable parameters.
        INFO cinder.message.api [...] Creating message record for request_id = req-dddddddd-dddd-dddd-dddd-dddddddddddd
        WARNING cinder.volume.manager [...] Deleting image in unexpected status: queued.: cinder.exception.Invalid: Unacceptable parameters.
        ERROR oslo_messaging.rpc.server [...] Exception during message handling: cinder.exception.Invalid: Unacceptable parameters.
        ERROR oslo_messaging.rpc.server Traceback (most recent call last):
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/oslo_messaging/rpc/server.py", line 165, in _process_incoming
        ERROR oslo_messaging.rpc.server     res = self.dispatcher.dispatch(message)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/oslo_messaging/rpc/dispatcher.py", line 309, in dispatch
        ERROR oslo_messaging.rpc.server     return self._do_dispatch(endpoint, method, ctxt, args)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/oslo_messaging/rpc/dispatcher.py", line 229, in _do_dispatch
        ERROR oslo_messaging.rpc.server     result = func(ctxt, **new_args)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/volume/manager.py", line 1811, in copy_volume_to_image
        ERROR oslo_messaging.rpc.server     payload['message'] = str(error)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__
        ERROR oslo_messaging.rpc.server     self.force_reraise()
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
        ERROR oslo_messaging.rpc.server     raise self.value
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/volume/manager.py", line 1791, in copy_volume_to_image
        ERROR oslo_messaging.rpc.server     self.driver.copy_volume_to_image(context, volume,
        ERROR oslo_messaging.rpc.server   File "<decorator-gen-27>", line 2, in copy_volume_to_image
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/coordination.py", line 201, in _synchronized
        ERROR oslo_messaging.rpc.server     return f(*a, **k)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/volume/drivers/remotefs.py", line 2032, in copy_volume_to_image
        ERROR oslo_messaging.rpc.server     return self._copy_volume_to_image(context, volume, image_service,
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/volume/drivers/remotefs.py", line 1106, in _copy_volume_to_image
        ERROR oslo_messaging.rpc.server     image_utils.convert_image(active_file_path, temp_path, 'raw',
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/image/image_utils.py", line 529, in convert_image
        ERROR oslo_messaging.rpc.server     check_image_format(source, src_format, image_id, data, run_as_root)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/image/image_utils.py", line 817, in check_image_format
        ERROR oslo_messaging.rpc.server     data = qemu_img_info(source, run_as_root=run_as_root)
        ERROR oslo_messaging.rpc.server   File "/usr/lib/python3.9/site-packages/cinder/image/image_utils.py", line 178, in qemu_img_info
        ERROR oslo_messaging.rpc.server     raise exception.Invalid(
        ERROR oslo_messaging.rpc.server cinder.exception.Invalid: Unacceptable parameters. 

      It seems that this issue occurs when we meet the following conditions

      • Cinder backend is NFS (to be exact, remotefs)
      • The volume format is qcow2
      • The volume has snapshosts

      Expected behavior

      • Image creation succeeds

      Bug impact

      • Image cannot created from volume

      Known workaround

      • Use cinder backends other than NFS
      • Delete snapshots of the volume

      Additional context

              Unassigned Unassigned
              rhn-support-yatanaka Yamato Tanaka
              Eric Harney, Fernando Silva
              rhos-storage-cinder
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: