aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-28 17:31:39 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-12-06 10:14:05 +0000
commit1d03e0d54863124c5a65b59ecdc76dbac13d312a (patch)
treeff2f83b9a1ab9087119032daf9b5e8897413370d /scripts
parent2728394ed75526f338cc9cb6bc62fb0ed6dc605f (diff)
downloadopenembedded-core-contrib-1d03e0d54863124c5a65b59ecdc76dbac13d312a.tar.gz
scripts/runqemu: Improve lockfile handling for python with close_fd=True
On python versions with close_fds=True (python 3.2 onwards), the tap device lockfile isn't passed to the child process. Since this guards against use of an active interface, we really want this here, so pass it in pass_fds. This means if the parent exits early, the child still holds the lock, avoiding messages like: runqemu - ERROR - Failed to run qemu: qemu-system-x86_64: could not configure /dev/net/tun (tap0): Device or resource busy (From OE-Core rev: 17a0a067d597c445c5892ff9914e91a2187f7e09) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/runqemu5
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 1eeafa9f5b..295c8b1b60 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1218,7 +1218,10 @@ class BaseConfig(object):
cmd = "%s %s" % (self.qemu_opt, kernel_opts)
cmds = shlex.split(cmd)
logger.info('Running %s\n' % cmd)
- process = subprocess.Popen(cmds, stderr=subprocess.PIPE)
+ pass_fds = []
+ if self.lock_descriptor:
+ pass_fds = [self.lock_descriptor.fileno()]
+ process = subprocess.Popen(cmds, stderr=subprocess.PIPE, pass_fds=pass_fds)
self.qemupid = process.pid
retcode = process.wait()
if retcode: