From: Richard Purdie <[email protected]> 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) (From OE-Core rev: d3b3c55ddc312039380ce8e23e68dd8bb2439388) Signed-off-by: Richard Purdie <[email protected]> --- scripts/runqemu | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/runqemu b/scripts/runqemu index a83c8a6..c6b7580 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: -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
