OpenStack Block Storage (Cinder)
Go to file
Sven Wegener 0fdff12b26 Fix ceph: only close rbd image after snapshot iteration is finished
list_snaps() returns an iterator object that requires resources from the
Image object. Closing the Image object deallocates these resources.

On Ceph mimic, which contains changes to the functions being invoked,
iterating over the snapshots of a closed image results in the following
assertion being triggered:

cinder-backup[29383]: /build/ceph-13.2.2/src/common/Mutex.cc: In function 'void Mutex::Lock(bool)' thread 7f35a4812700 time 2018-12-14 10:10:49.843120
cinder-backup[29383]: /build/ceph-13.2.2/src/common/Mutex.cc: 110: FAILED assert(r == 0)
cinder-backup[29383]:  ceph version 13.2.2 (02899bfda814146b021136e9d8e80eba494e1126) mimic (stable)
cinder-backup[29383]:  1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x102) [0x7f35903440f2]
cinder-backup[29383]:  2: (()+0x3162b7) [0x7f35903442b7]
cinder-backup[29383]:  3: (Mutex::Lock(bool)+0x1de) [0x7f359031901e]
cinder-backup[29383]:  4: (()+0x8f452) [0x7f358dafc452]
cinder-backup[29383]:  5: (()+0x11280d) [0x7f358db7f80d]
cinder-backup[29383]:  6: (rbd_snap_get_namespace_type()+0x29) [0x7f358dacf549]

The lock being tried to acquire and the object that contained it have
already been destroyed by closing the image. The assertion terminates
the cinder-backup service via SIGABRT.

On Ceph luminous we've seen occasional segfaults of the cinder-backup
service, which might have the same underlying cause.

Closes-Bug: #1838691

Change-Id: If6043d82cc57d9247a290816d90b95cdf719eaac
Signed-off-by: Sven Wegener <sven.wegener@inovex.de>
(cherry picked from commit 7656967259)
(cherry picked from commit e78b220f44)
(cherry picked from commit 57b1274591)
(cherry picked from commit 9e5d33ac24)
2019-08-13 17:19:08 -03:00
api-ref/source Merge "[api-ref] Add api-ref for os-quota-class-sets APIs" 2017-08-09 19:00:47 +00:00
cinder Fix ceph: only close rbd image after snapshot iteration is finished 2019-08-13 17:19:08 -03:00
contrib/block-box Merge "Fix some doc issue" 2017-07-31 16:43:56 +00:00
doc VMAX Pike docs - clarifying supported software in Pike 2019-06-19 14:02:24 +01:00
etc/cinder Update resource_filter to keep backward compatibility 2017-08-02 09:10:15 +08:00
playbooks/legacy/cinder-tempest-dsvm-lvm-lio OpenDev Migration Patch 2019-04-19 19:26:59 +00:00
rally-jobs Fix rally "volume_type" parameter 2017-06-29 20:19:46 +03:00
releasenotes Fix "connector=None" issue in Kaminario drivers 2019-05-23 14:49:27 +00:00
tools Keep consistent of naming convention 2017-07-10 10:46:44 +08:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-10-17 19:09:37 +05:30
.gitignore Add .zuul.yaml with LIO job 2017-11-15 12:56:47 -05:00
.gitreview OpenDev Migration Patch 2019-04-19 19:26:59 +00:00
.testr.conf Move integrated tests to 'functional' directory 2016-02-09 23:28:27 +02:00
.zuul.yaml Remove LOCI publishing from the post pipeline 2019-05-07 16:28:39 +00:00
CONTRIBUTING.rst Optimize the link address 2017-04-08 15:03:44 +08:00
HACKING.rst Update log translation hacking rule 2017-06-29 04:05:52 -04:00
LICENSE Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
README.rst Update Documentation link 2017-07-13 12:12:20 +00:00
babel.cfg Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
bindep.txt Add thin provisioning package to install guide 2017-12-28 14:10:28 +00:00
driver-requirements.txt IBM storage: check pyxcli version on initialize 2017-08-17 19:26:04 +00:00
pylintrc Use six to fix imports on Python 3 2015-06-11 17:19:19 +02:00
requirements.txt Updated from global requirements 2017-08-07 00:42:14 +00:00
setup.cfg Update URL home-page in documents according to document migration 2017-07-27 02:27:23 +00:00
setup.py Updated from global requirements 2017-03-02 23:53:29 +00:00
test-requirements.txt Updated from global requirements 2017-07-28 01:10:24 +00:00
tox.ini Make sure we install cinder requirements during the correct tox phase 2019-05-13 22:35:15 +02:00

README.rst

Team and repository tags

image

CINDER

You have come across a storage service for an open cloud computing service. It has identified itself as Cinder. It was abstracted from the Nova project.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://git.openstack.org/openstack/cinder.git

For developer information please see HACKING.rst

You can raise bugs here https://bugs.launchpad.net/cinder

Python client

https://git.openstack.org/cgit/openstack/python-cinderclient