3par create volume from snapshot doesn't allow changing size

Bug #1279478 reported by Ramy Asselin on 2014-02-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Low
Ramy Asselin

Bug Description

In horizon:
1. Create a volume
2. Create a snapshot of the volume
3. Create a volume based on the snapshot using a size greater than the original.
4. Horizon shows the volume with Status=Error

c-vol logs:

2014-02-12 11:11:20.785 ERROR cinder.volume.flows.manager.create_volume [req-80c893bb-ba58-4c15-a7a7-ded1ed74247e e1a0f96cf09141ec8e393429e82062df dcac4edbf1aa48afb109bed9529cdd6e] Volume e07e57c6-7cc1-4b60-8050-8187d99e0006: create failed
2014-02-12 11:11:20.786 DEBUG cinder.openstack.common.lockutils [req-80c893bb-ba58-4c15-a7a7-ded1ed74247e e1a0f96cf09141ec8e393429e82062df dcac4edbf1aa48afb109bed9529cdd6e] Released file lock "00844d93-9233-4b14-a238-e94916936807-delete_snapshot" at /opt/stack/data/cinder/cinder-00844d93-9233-4b14-a238-e94916936807-delete_snapshot for method "_run_flow_locked"... from (pid=28714) inner /opt/stack/cinder/cinder/openstack/common/lockutils.py:239
2014-02-12 11:11:20.786 ERROR cinder.openstack.common.rpc.amqp [req-80c893bb-ba58-4c15-a7a7-ded1ed74247e e1a0f96cf09141ec8e393429e82062df dcac4edbf1aa48afb109bed9529cdd6e] Exception during message handling
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp Traceback (most recent call last):
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/openstack/common/rpc/amqp.py", line 462, in _process_data
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp **args)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/openstack/common/rpc/dispatcher.py", line 172, in dispatch
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp result = getattr(proxyobj, method)(ctxt, **kwargs)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/manager.py", line 355, in create_volume
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp _run_flow_locked()
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/openstack/common/lockutils.py", line 233, in inner
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp retval = f(*args, **kwargs)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/manager.py", line 350, in _run_flow_locked
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp _run_flow()
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/manager.py", line 346, in _run_flow
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp flow_engine.run()
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/utils/lock_utils.py", line 51, in wrapper
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp return f(*args, **kwargs)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 110, in run
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp self._run()
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 118, in _run
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp self._revert(misc.Failure())
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 75, in _revert
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp misc.Failure.reraise_if_any(failures.values())
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/utils/misc.py", line 390, in reraise_if_any
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp failures[0].reraise()
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/utils/misc.py", line 397, in reraise
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp six.reraise(*self._exc_info)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/task_action.py", line 96, in execute
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp result = self._task.execute(**kwargs)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/flows/manager/create_volume.py", line 598, in execute
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp **volume_spec)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/flows/manager/create_volume.py", line 398, in _create_from_snapshot
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp snapshot_ref)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/openstack/common/lockutils.py", line 233, in inner
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp retval = f(*args, **kwargs)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/drivers/san/hp/hp_3par_fc.py", line 145, in create_volume_from_snapshot
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp snapshot)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp File "/opt/stack/cinder/cinder/volume/drivers/san/hp/hp_3par_common.py", line 797, in create_volume_from_snapshot
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp raise exception.InvalidInput(reason=err)
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp InvalidInput: Invalid input received: You cannot change size of the volume. It must
2014-02-12 11:11:20.786 TRACE cinder.openstack.common.rpc.amqp

Ramy Asselin (ramy-asselin) wrote :
Changed in cinder:
assignee: nobody → Ramy Asselin (ramy-asselin)
Changed in cinder:
status: New → Confirmed

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

Changed in cinder:
status: Confirmed → In Progress
tags: added: 3par

Reviewed: https://review.openstack.org/76031
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=9090f99986c5b2cf725814e6ab64fd2d2a829d3e
Submitter: Jenkins
Branch: master

commit 9090f99986c5b2cf725814e6ab64fd2d2a829d3e
Author: Ramy Asselin <email address hidden>
Date: Mon Feb 24 14:54:08 2014 -0800

    3PAR: Create volume from snapshot with larger size

    Refactored the migrate_volume code to be usable by both migrate volume
    and create volume from snapshot with a larger size. The common functionality
    is to clone a volume as a base volume. Migrate volume specifies a different
    CPG, whereas create volume from snapshot uses the same CPG.

    Change-Id: I4081807294d918fc0e9c2e17bae89b6df7ee1513
    Closes-Bug: #1279478

Changed in cinder:
status: In Progress → Fix Committed
Changed in cinder:
milestone: none → icehouse-3
Thierry Carrez (ttx) on 2014-03-05
Changed in cinder:
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2014-04-17
Changed in cinder:
milestone: icehouse-3 → 2014.1
Changed in cinder:
importance: Undecided → Low
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers