diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-06-15 12:00:33 -1000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-06-19 17:06:18 +0100 |
commit | f46f6af1f255544e4399e0ce4aee6ce9061a259d (patch) | |
tree | e78e5d7b6d469b7cc02768718c6f5943a90e8432 /meta/recipes-devtools/libcomps | |
parent | aa2c6a789aa883f504465b9203f2e76e5859e9eb (diff) | |
download | poky-f46f6af1f255544e4399e0ce4aee6ce9061a259d.tar.gz |
bitbake: cooker: Avoid parser deadlocks
If you make parsing fail (e.g. add something like:
X := "${@d.getVar('MCMACHINES').split()[1]}"
to meson.bbclass, then run "while true; do bitbake -g bash; done"
it will eventually hang. It appears the cancel_join_thread() call the
parsing failure triggers, breaks the results_queue badly enough that it
sits in read() indefintely (called from self.result_queue.get(timeout=0.25)).
The timeout only applies to lock aquisition, not the read call.
I've tried various other approaches such as using cancel_join_thread()
in other places but the only way things don't lock up is to avoid
cancel_join_thread() entirely for results_queue.
I do have a concern that this may adversely affect Ctrl+C handling
but equally, its broken now already and this appears to improve
things.
[YOCTO #14034]
(Bitbake rev: 0e0af15b84e07e6763300dcd092b980086b9b9c4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/libcomps')
0 files changed, 0 insertions, 0 deletions