aboutsummaryrefslogtreecommitdiffstats
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-11-28 22:23:49 +0000
commit41975aa977f7aa387851aa5e4f584db749a27736 (patch)
tree93a2841f5935bb8fac92304876638ccdb02fc35f
parent85cf23230ddba1b7119f008e4b5b51ee7ee40b80 (diff)
downloadopenembedded-core-contrib-41975aa977f7aa387851aa5e4f584db749a27736.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 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu5
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index d25de42f27..f661892aec 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1220,7 +1220,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: