runqemu: fix get portlock fail for multi users

when runqemu with slirp option on same host with different
users, it will report PermissionError: [Errno 13] Permission
denied: '/tmp/qemu-port-locks/2222.lock'
and during handle this exception, another exception happened since
key not exist. Fix by check if key exist first

(From OE-Core rev: 56f30e5377ebe5cc4544f081e001934706a0d8d3)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Changqing Li
2019-08-02 10:43:59 +08:00
committed by Richard Purdie
parent 5cc460d177
commit f2a951f479

View File

@@ -235,7 +235,7 @@ class BaseConfig(object):
else:
return False
def acquire_portlock(self, lockfile, error=True):
def acquire_portlock(self, lockfile):
logger.debug("Acquiring lockfile %s..." % lockfile)
try:
portlock_descriptor = open(lockfile, 'w')
@@ -243,11 +243,8 @@ class BaseConfig(object):
fcntl.flock(self.portlocks[lockfile], fcntl.LOCK_EX|fcntl.LOCK_NB)
except Exception as e:
msg = "Acquiring lockfile %s failed: %s" % (lockfile, e)
if error:
logger.error(msg)
else:
logger.info(msg)
if self.portlocks[lockfile]:
logger.info(msg)
if lockfile in self.portlocks.keys() and self.portlocks[lockfile]:
self.portlocks[lockfile].close()
del self.portlocks[lockfile]
return False