From d3b3c55ddc312039380ce8e23e68dd8bb2439388 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 28 Nov 2018 17:31:39 +0000 Subject: 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 --- scripts/runqemu | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/runqemu b/scripts/runqemu index a83c8a6944..c6b7580ddc 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -1215,7 +1215,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: -- cgit 1.2.3-korg