Some GlusterFS operations are still not synchronized/locked, which causes failures like the below (multiple clones from the same volume running at once, reported in bug 984280): 2013-12-11 19:39:54.425 3860 TRACE cinder.volume.flows.create_volume Stderr: 'Error: Trying to create an image with the same filename as the backing file\n' 2013-12-11 19:39:54.425 3860 TRACE cinder.volume.flows.create_volume 2013-12-11 19:39:54.428 3860 ERROR cinder.openstack.common.rpc.amqp [req-517c7870-adc9-4cfd-a50f-eb0a9a03ac12 674776fc1eea47718301aeacbab072b3 5cea8d9e58c841dfb03b1cda755b539d] Exception during message handling 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp Traceback (most recent call last): 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 441, in _process_data 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp **args) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/utils.py", line 809, in wrapper 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp return func(self, *args, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/manager.py", line 257, in create_volume 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp flow.run(context.elevated()) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/taskflow/decorators.py", line 105, in wrapper 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp return f(self, *args, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 232, in run 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp run_it(r) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 212, in run_it 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self.rollback(context, cause) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/taskflow/patterns/linear_flow.py", line 172, in run_it 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp result = runner(context, *args, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/taskflow/utils.py", line 260, in __call__ 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self.result = self.task(*args, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/flows/create_volume/__init__.py", line 1499, in __call__ 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp **volume_spec) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/flows/create_volume/__init__.py", line 1339, in _create_from_source_volume 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp model_update = self.driver.create_cloned_volume(volume_ref, srcvol_ref) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 188, in create_cloned_volume 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self.create_snapshot(temp_snapshot) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/lockutils.py", line 247, in inner 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp retval = f(*args, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 460, in create_snapshot 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self._create_snapshot(snapshot, path_to_disk, snap_id) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 500, in _create_snapshot 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp new_snap_path) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/volume/drivers/glusterfs.py", line 478, in _create_qcow2_snap_file 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp self._execute(*command, run_as_root=True) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/utils.py", line 143, in execute 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp return processutils.execute(*cmd, **kwargs) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/processutils.py", line 173, in execute 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp cmd=' '.join(cmd)) 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp ProcessExecutionError: Unexpected error while running command. 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp Command: sudo cinder-rootwrap /etc/cinder/rootwrap.conf qemu-img create -f qcow2 -o backing_file=/var/lib/cinder/mnt/249458a2755cd0a9f302b9d81eb3f35d/volume-c5bfe327-59f2-4936-846b-a0a88b8c6687.tmp-snap-c5bfe327-59f2-4936-846b-a0a88b8c6687 /var/lib/cinder/mnt/249458a2755cd0a9f302b9d81eb3f35d/volume-c5bfe327-59f2-4936-846b-a0a88b8c6687.tmp-snap-c5bfe327-59f2-4936-846b-a0a88b8c6687 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp Exit code: 1 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp Stdout: '' 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp Stderr: 'Error: Trying to create an image with the same filename as the backing file\n' 2013-12-11 19:39:54.428 3860 TRACE cinder.openstack.common.rpc.amqp (END)
Found a deadlock issue while testing this patch. create_snapshot tries to acquire the same lock that create_cloned_volume is holding.
verified on openstack-cinder-2013.2.2-1.el6ost.noarch
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-0213.html