summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2016-09-19 00:20:08 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-19 09:06:37 +0100
commitf364f773a0381a75b5992c8c8a1d63a81dbd4422 (patch)
treed55be464259c4b72a72485c20ab7ecbfed2d709d /scripts
parent7c6d0e4ada6dea6ac994e637b7d5cf007f73e411 (diff)
downloadopenembedded-core-f364f773a0381a75b5992c8c8a1d63a81dbd4422.tar.gz
openembedded-core-f364f773a0381a75b5992c8c8a1d63a81dbd4422.tar.bz2
openembedded-core-f364f773a0381a75b5992c8c8a1d63a81dbd4422.zip
runqemu: acquire_lock() should fail when failed to open the file
The open(self.lock, 'w') may fail when the lock is created by other users, return false for this case to let it try other devices. Fixed: runqemu - INFO - Running /sbin/ip link... runqemu - INFO - Acquiring lockfile /tmp/qemu-tap-locks/tap0.lock... Traceback (most recent call last): File "/buildarea/lyang1/poky/scripts/runqemu", line 972, in <module> ret = main() File "/buildarea/lyang1/poky/scripts/runqemu", line 963, in main config.setup_network() File "/buildarea/lyang1/poky/scripts/runqemu", line 810, in setup_network self.setup_tap() File "/buildarea/lyang1/poky/scripts/runqemu", line 761, in setup_tap if self.acquire_lock(): File "/buildarea/lyang1/poky/scripts/runqemu", line 182, in acquire_lock lock_descriptor = open(self.lock, 'w') PermissionError: [Errno 13] Permission denied: '/tmp/qemu-tap-locks/tap0.lock' Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/runqemu8
1 files changed, 4 insertions, 4 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index b6bc0ba734..380568560b 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -168,14 +168,14 @@ class BaseConfig(object):
def acquire_lock(self):
logger.info("Acquiring lockfile %s..." % self.lock)
- lock_descriptor = open(self.lock, 'w')
try:
- fcntl.flock(lock_descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB)
+ self.lock_descriptor = open(self.lock, 'w')
+ fcntl.flock(self.lock_descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB)
except Exception as e:
logger.info("Acquiring lockfile %s failed: %s" % (self.lock, e))
- lock_descriptor.close()
+ if self.lock_descriptor:
+ self.lock_descriptor.close()
return False
- self.lock_descriptor = lock_descriptor
return True
def release_lock(self):