[oe-commits] [openembedded-core] 05/29: runqemu: acquire_lock() should fail when failed to open the file

git at git.openembedded.org git at git.openembedded.org
Mon Sep 19 08:11:59 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit f364f773a0381a75b5992c8c8a1d63a81dbd4422
Author: Robert Yang <liezhi.yang at windriver.com>
AuthorDate: Mon Sep 19 00:20:08 2016 -0700

    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 at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/runqemu | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index b6bc0ba..3805685 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):

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list