From 5ee122244ad2413b71c526d6d4576ae5b2f4ca7a Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Wed, 20 May 2015 20:01:02 -0500 Subject: bitbake: bitbake-worker: Fix regression with unbuffered logs I noticed that I was seeing loss of the log files when hitting control-c while debugging a function in bitbake. In fact if you take a recipe and replace its compile function as shown below let it run for a few seconds and hit control-c, you will see first hand that log data is not there. do_compile () { while [ 1 ] ; do echo -n "Output date: " date sleep 1 done } It turns out there was a regression introduced by commit: d0f0e5d9e69 which created the bitbake worker. Since the bitbake worker is started in its own process space, it needs the exact same code added from commit: 88429f018b where the problem was fixed the first time around. (Bitbake rev: 8d1748f75763b4a66516cc46d5457ee6404b1b68) Signed-off-by: Jason Wessel Signed-off-by: Richard Purdie --- bitbake/bin/bitbake-worker | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker index 8a24161250..96a4d4cdec 100755 --- a/bitbake/bin/bitbake-worker +++ b/bitbake/bin/bitbake-worker @@ -24,6 +24,15 @@ if sys.argv[1] == "decafbadbad": except: import profile +# Unbuffer stdout to avoid log truncation in the event +# of an unorderly exit as well as to provide timely +# updates to log files for use with tail +try: + if sys.stdout.name == '': + sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) +except: + pass + logger = logging.getLogger("BitBake") try: -- cgit v1.2.3-54-g00ecf