diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-02 23:14:04 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-08 10:18:02 +0100 |
commit | 1ba387a12c43f519d0b172ec169726331c4de25f (patch) | |
tree | 47e9d58863c84cc668d463913efbc3da214b30cf /meta-yocto-bsp/wic/genericx86.wks.in | |
parent | f19f252e2bad84524d61a743effac9e43e64c4e2 (diff) | |
download | poky-1ba387a12c43f519d0b172ec169726331c4de25f.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: 9c61a1cc7be46c23da1f4ef3bee070fb83c4be57)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta-yocto-bsp/wic/genericx86.wks.in')
0 files changed, 0 insertions, 0 deletions