From: Jenkins Date: Fri, 13 Mar 2015 21:53:53 +0000 (+0000) Subject: Merge "Fix LVM thin pool creation race" X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=0747b83a395a4e3c657e010bc30c44ec9d78d2bd;p=openstack-build%2Fcinder-build.git Merge "Fix LVM thin pool creation race" --- 0747b83a395a4e3c657e010bc30c44ec9d78d2bd diff --cc cinder/brick/local_dev/lvm.py index 2f6a3dc51,9fe2f4de9..43190d2bb --- a/cinder/brick/local_dev/lvm.py +++ b/cinder/brick/local_dev/lvm.py @@@ -92,16 -89,18 +92,22 @@@ class LVM(executor.Executor) if lvm_type == 'thin': pool_name = "%s-pool" % self.vg_name if self.get_volume(pool_name) is None: - self.create_thin_pool(pool_name) - else: - self.vg_thin_pool = pool_name - + try: + self.create_thin_pool(pool_name) + except putils.ProcessExecutionError: + # Maybe we just lost the race against another copy of + # this driver being in init in parallel - e.g. + # cinder-volume and cinder-backup starting in parallel + if self.get_volume(pool_name) is None: + raise + + self.vg_thin_pool = pool_name self.activate_lv(self.vg_thin_pool) self.pv_list = self.get_all_physical_volumes(root_helper, vg_name) + if lvm_conf and os.path.isfile(lvm_conf): + LVM.LVM_CMD_PREFIX = ['env', + 'LC_ALL=C', + 'LVM_SYSTEM_DIR=/etc/cinder'] def _vg_exists(self): """Simple check to see if VG exists.