]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Add retry to lvm snapshot create
authorJohn Griffith <john.griffith@solidfire.com>
Thu, 22 Jan 2015 18:22:25 +0000 (11:22 -0700)
committerJohn Griffith <john.griffith8@gmail.com>
Sat, 24 Jan 2015 23:05:31 +0000 (23:05 +0000)
We have some occasional issues with snapshot-create
failing for what looks to be conflicts with udev.  It
looks like this problem is a status conflict between LVM
cache and udev, and in most cases the best way to get
around this is to retry the command a few times until
the cache and udev are back in sync.

This patch uses the newly added retry decorator and
for now we're just adding it to the snapshot create
call.  We're using the default values for interval and
retry count but we can certainly adjust this as needed.

Change-Id: Ic884b829591361da979fde968f5710237b34565f
Closes-Bug: #1335905

cinder/brick/local_dev/lvm.py

index 9776ddf2e315e2a1df13d8b99947216e941ebc5a..59ab1313b77c1ce4dcd92f697ec61141057b44f1 100644 (file)
@@ -29,6 +29,7 @@ from cinder.brick import exception
 from cinder.brick import executor
 from cinder.i18n import _, _LE, _LI, _LW
 from cinder.openstack.common import log as logging
+from cinder import utils
 
 
 LOG = logging.getLogger(__name__)
@@ -509,6 +510,7 @@ class LVM(executor.Executor):
             LOG.error(_LE('StdErr  :%s') % err.stderr)
             raise
 
+    @utils.retry(putils.ProcessExecutionError)
     def create_lv_snapshot(self, name, source_lv_name, lv_type='default'):
         """Creates a snapshot of a logical volume.