From: Robert Yang Date: Wed, 14 Sep 2016 09:45:57 +0000 (-0700) Subject: runqemu: fix a race issue on lockdir X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~24221 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ec33043477a0b915b0911f7d7eacb24361e4aaa8;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 | 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' Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- diff --git a/scripts/runqemu b/scripts/runqemu index 9af13f3360d..b6bc0ba7347 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -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)