From: Jason Wessel Date: Thu, 21 May 2015 01:01:02 +0000 (-0500) Subject: bitbake: bitbake-worker: Fix regression with unbuffered logs X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5ee122244ad2413b71c526d6d4576ae5b2f4ca7a;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 --- diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker index 8a241612504..96a4d4cdec7 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: