After transfering volume without snapshot, driver may raise exception when doing cascade deleting

Bug #1698310 reported by wanghao
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
wanghao

Bug Description

Reproduce Steps:

Environment: devstack in ubuntu 17.04
Backend Driver: LVM
Cinder Branch: Master

1. Create a volume in a user project A
2. Create a snapshot of this volume in project A too.
3. Transfer this volume to a user project B without snapshot.
4. Make a cascade deleting in project B

There is an exception in cinder-volume and volume's status become to 'error_deleting'

There is exception log:

2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 157, in _process_incoming
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 213, in dispatch
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 183, in _do_dispatch
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "<decorator-gen-240>", line 2, in delete_volume
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/coordination.py", line 298, in _synchronized
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server return f(*a, **k)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "<decorator-gen-239>", line 2, in delete_volume
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/objects/cleanable.py", line 207, in wrapper
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server result = f(*args, **kwargs)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 801, in delete_volume
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server new_status)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 776, in delete_volume
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server raise exception.InvalidSnapshot(reason=msg)
2017-06-16 15:22:44.343 14705 ERROR oslo_messaging.rpc.server InvalidSnapshot: Invalid snapshot: Snapshot 29b63671-3df5-460e-9d55-8f53c6fdfc3f was found in state available rather than 'deleting' during cascade delete.

The reason of this issue is Cinder didn't check if the snapshot is existing in other project.
This bug should be fixed before we start to code bp 'transfer snapshots with volumes'[1]

[1]:https://blueprints.launchpad.net/cinder/+spec/transfer-snps-with-vols

wanghao (wanghao749)
Changed in cinder:
assignee: nobody → wanghao (wanghao749)
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/474890

Changed in cinder:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/474890
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=6e412852f2b756c83ab986fb382f5c249fa3d3ce
Submitter: Jenkins
Branch: master

commit 6e412852f2b756c83ab986fb382f5c249fa3d3ce
Author: wanghao <email address hidden>
Date: Fri Jun 16 16:13:44 2017 +0800

    Fix driver exception when cascade deleting volume after transferring

    After transferring a volume without snapshots from one user project
    to another user project, if the receiving user uses cascade deleting,
    it will cause some exceptions in driver and volume will be error_deleting.

    APIImpact

    Change-Id: I9a870118c9c68799a4dab4bfa1f08b1e65a4796a
    Closes-Bug: #1698310

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

This issue was fixed in the openstack/cinder 11.0.0.0b3 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.