path: root/lib/bb/tests/codeparser.py
diff options
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-24 21:41:30 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-29 11:22:02 +0000
commit3cb0d1c78b4c2e4f251a59b86c8da583828ad08b (patch)
tree407cdbcb0172e977fc7f33e082a8e28f0f45a429 /lib/bb/tests/codeparser.py
parentd140f0ee6f301264e226914766d9f63558acfd6c (diff)
bitbake-worker: Handle cooker/worker IO deadlocking
I noiced builds where tasks seemed to be taking a surprisingly long time. When I looked at the output of top/pstree, these tasks were no longer running despite being listed in knotty. Some were in D/Z state waiting for their exit code to be collected, others were simply not present at all. strace showed communication problems between the worker and cooker, each was trying to write to the other and nearly deadlocking. Eventually, timeouts would allow them to echange 64kb of data but this was only happening every few seconds. Whilst this particularly affected builds on machines with large numbers of cores (and hence highly parallal task execution) and in cases where I had a lot of debug enabled, this situation is clearly bad in general. This patch introduces a thread to the worker which is used to write data back to cooker. This means that the deadlock can't occur and data flows much more freely and effectively. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/tests/codeparser.py')
0 files changed, 0 insertions, 0 deletions