VMware: Creating linked clone volumes in VC 6.0 fails with InvalidArgument

Bug #1629207 reported by Vipin Balachandran
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Vipin Balachandran

Bug Description

Creating linked clone volumes in VC 6.0 fails with InvalidArgument. After cloning the source, we update the disk device backing UUID which is failing in VC 6.0 with the following traceback:

2016-07-29 14:53:35.937 ERROR oslo_messaging.rpc.server [req-04899057-cc6b-4a77-a243-3ce50cfb7db3 58405ae531e24de58b2afbcd7da3726e b0a4dd991113487fa1a978aa47dc7b4d] Exception during message handling
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server Traceback (most recent call last):
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server result = func(ctxt, **new_args)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 147, in wrapper
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return f(*args, **kwargs)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 592, in create_volume
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server _run_flow()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 580, in _run_flow
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server flow_engine.run()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 247, in run
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server for _state in self.run_iter(timeout=timeout):
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 340, in run_iter
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server failure.Failure.reraise_if_any(er_failures)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/types/failure.py", line 336, in reraise_if_any
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server failures[0].reraise()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/types/failure.py", line 343, in reraise
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server six.reraise(*self._exc_info)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/executor.py", line 53, in _execute_task
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server result = task.execute(**arguments)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/flows/manager/create_volume.py", line 821, in execute
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server context, volume_ref=volume_ref, **volume_spec)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/flows/manager/create_volume.py", line 482, in _create_from_source_volume
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server model_update = self.driver.create_cloned_volume(volume_ref, srcvol_ref)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 147, in wrapper
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return f(*args, **kwargs)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/drivers/vmware/vmdk.py", line 2067, in create_cloned_volume
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server self._create_cloned_volume(volume, src_vref)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/drivers/vmware/vmdk.py", line 2059, in _create_cloned_volume
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server src_vref['size'])
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/drivers/vmware/vmdk.py", line 1981, in _clone_backing
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server self.volumeops.update_backing_disk_uuid(clone, volume['id'])
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/drivers/vmware/volumeops.py", line 1276, in update_backing_disk_uuid
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server self._reconfigure_backing(backing, reconfig_spec)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/drivers/vmware/volumeops.py", line 1157, in _reconfigure_backing
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server self._session.wait_for_task(reconfig_task)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/oslo.vmware/oslo_vmware/api.py", line 387, in wait_for_task
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return evt.wait()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 121, in wait
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return hubs.get_hub().switch()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 294, in switch
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server return self.greenlet.switch()
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/oslo.vmware/oslo_vmware/common/loopingcall.py", line 76, in _inner
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server self.f(*self.args, **self.kw)
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server File "/opt/stack/oslo.vmware/oslo_vmware/api.py", line 429, in _poll_task
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server raise task_ex
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server VimFaultException: A specified parameter was not correct: spec.deviceChange.device
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server Faults: ['InvalidArgument']
2016-07-29 14:53:35.937 TRACE oslo_messaging.rpc.server

Tags: drivers vmware
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

Fix proposed to branch: master
Review: https://review.openstack.org/379984

Changed in cinder:
status: New → In Progress
Changed in cinder:
importance: Undecided → Medium
Changed in cinder:
milestone: none → ocata-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/379984
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=63bf7eb37b4c179ca725d29430639b5cd2245481
Submitter: Jenkins
Branch: master

commit 63bf7eb37b4c179ca725d29430639b5cd2245481
Author: Vipin Balachandran <email address hidden>
Date: Tue Jul 12 17:45:10 2016 +0530

    VMware: Skip setting vmdk UUID

    After creating a volume from a source volume or snapshot, the VMDK
    driver sets the vmdk (volume in vCenter) UUID to the volume UUID.
    vCenter 6.0+ does not support this operation if the new volume is
    created as a linked clone of the source. This patch skips the UUID
    update operation for linked clone volumes if vCenter version is
    6.0+.

    DocImpact

    Closes-bug: #1629207
    Change-Id: I90cd0987de8a17e033aee009171ff4cdbf4114e2

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 10.0.0.0b1

This issue was fixed in the openstack/cinder 10.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.