[OE-core] [PATCH 2/2] scripts/runqemu: Improve lockfile handling for python with close_fd=True

Richard Purdie richard.purdie at linuxfoundation.org
Wed Nov 28 17:36:31 UTC 2018


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

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/runqemu | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index d25de42f27d..b5afa5883aa 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1220,7 +1220,7 @@ 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)
+        process = subprocess.Popen(cmds, stderr=subprocess.PIPE, pass_fds=[self.lock_descriptor.fileno()])
         self.qemupid = process.pid
         retcode = process.wait()
         if retcode:
-- 
2.17.1



More information about the Openembedded-core mailing list