diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-28 17:31:39 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-12-06 10:14:05 +0000 |
commit | 1d03e0d54863124c5a65b59ecdc76dbac13d312a (patch) | |
tree | ff2f83b9a1ab9087119032daf9b5e8897413370d | |
parent | 2728394ed75526f338cc9cb6bc62fb0ed6dc605f (diff) | |
download | openembedded-core-1d03e0d54863124c5a65b59ecdc76dbac13d312a.tar.gz openembedded-core-1d03e0d54863124c5a65b59ecdc76dbac13d312a.tar.bz2 openembedded-core-1d03e0d54863124c5a65b59ecdc76dbac13d312a.zip |
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>
-rwxr-xr-x | scripts/runqemu | 5 |
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: |