summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-02 23:14:04 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-08 10:18:02 +0100
commit1ba387a12c43f519d0b172ec169726331c4de25f (patch)
tree47e9d58863c84cc668d463913efbc3da214b30cf /documentation
parentf19f252e2bad84524d61a743effac9e43e64c4e2 (diff)
downloadpoky-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 'documentation')
0 files changed, 0 insertions, 0 deletions