runqemu: fix a race issue on lockdir

There might be a race issue when multi runqemu processess are
running at the same time:
| Traceback (most recent call last):
|   File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-ipk/build/scripts/runqemu", line 920, in <module>
|     ret = main()
|   File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-ipk/build/scripts/runqemu", line 911, in main
|     config.setup_network()
|   File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-ipk/build/scripts/runqemu", line 760, in setup_network
|     self.setup_tap()
|   File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-ipk/build/scripts/runqemu", line 697, in setup_tap
|     os.mkdir(lockdir)
| FileExistsError: [Errno 17] File exists: '/tmp/qemu-tap-locks'

(From OE-Core rev: ec33043477a0b915b0911f7d7eacb24361e4aaa8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang 2016-09-14 02:45:57 -07:00 committed by Richard Purdie
parent edc92ea8de
commit 26e46e6d90
1 changed files with 6 additions and 1 deletions

View File

@ -694,7 +694,12 @@ class BaseConfig(object):
raise Exception("runqemu-ifup, runqemu-ifdown or ip not found")
if not os.path.exists(lockdir):
os.mkdir(lockdir)
# There might be a race issue when multi runqemu processess are
# running at the same time.
try:
os.mkdir(lockdir)
except FileExistsError:
pass
cmd = '%s link' % ip
logger.info('Running %s...' % cmd)