]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
bitbake: cooker: Kill alive process before join it m5
authorRobert Yang <liezhi.yang@windriver.com>
Thu, 22 Aug 2019 04:24:40 +0000 (12:24 +0800)
committerRobert Yang <liezhi.yang@windriver.com>
Thu, 22 Aug 2019 06:53:25 +0000 (14:53 +0800)
commitd0e866d6640d5b834a6a48247642165e610f4a08
tree0f5674fffd2691788ac6acdf34999512849a50a8
parent58ab85d3e005476ab5bcc288ad421c0c5d1e0582
bitbake: cooker: Kill alive process before join it

Fixed:
$ echo helloworld >> meta/recipes-extended/bash/bash_4.4.18.bb
$ while true; do kill-bb; rm -fr bitbake-cookerdaemon.log tmp/cache/default-glibc/qemux86-64/x86_64/bb_cache.dat* ; bitbake -p; done

It may hang in 10 mins, there are two problems:
* There might be deadlocks when call process.join() if the queue is not NULL,
  so we need cleanup the queue before join() it, but:
* The self.result_queue.get(timeout=0.25) may hang if the queue._wlock is hold
  by SomeOtherProcess, the queue has the following info when it hangs:
  '_wlock': <Lock(owner=SomeOtherProcess)>

We can kill alvie process before join it to fix the problems.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
bitbake/lib/bb/cooker.py