From 88d316f0be89d8fe1cc5616091e0ceb47abfd55f Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Thu, 21 Mar 2013 06:11:36 +0000 Subject: Locking edge case when lock_path does not exist Fixes bug 1158179 In the case that the lock_path does not exist and there is a contested resource then the process that was waiting on the lock will not be locking due to the fact that the directory was deleted. Change-Id: I75d720d4df499e85386d3e2cc86b927b017e12ac --- openstack/common/lockutils.py | 1 - tests/unit/test_lockutils.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/openstack/common/lockutils.py b/openstack/common/lockutils.py index 00becb0..ef42b9b 100644 --- a/openstack/common/lockutils.py +++ b/openstack/common/lockutils.py @@ -207,7 +207,6 @@ def synchronized(name, lock_file_prefix, external=False, lock_path=None): local_lock_path = tempfile.mkdtemp() if not os.path.exists(local_lock_path): - cleanup_dir = True fileutils.ensure_tree(local_lock_path) # NOTE(mikal): the lock name cannot contain directory diff --git a/tests/unit/test_lockutils.py b/tests/unit/test_lockutils.py index ae5dca7..1230569 100644 --- a/tests/unit/test_lockutils.py +++ b/tests/unit/test_lockutils.py @@ -186,8 +186,6 @@ class LockTestCase(utils.BaseTestCase): shutil.rmtree(lock_dir, ignore_errors=True) def test_synchronized_externally_lock_dir_not_exist(self): - self.skipTest('bug #1107950') - lock_dir = tempfile.mkdtemp() os.rmdir(lock_dir) self.config(lock_path=lock_dir) -- cgit