[bitbake-devel] [PATCH] bitbake-worker: Fix regression with unbuffered logs
Jason Wessel
jason.wessel at windriver.com
Thu May 21 01:01:02 UTC 2015
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.
Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
---
bin/bitbake-worker | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/bin/bitbake-worker b/bin/bitbake-worker
index 8a24161..96a4d4c 100755
--- a/bin/bitbake-worker
+++ b/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 == '<stdout>':
+ sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+except:
+ pass
+
logger = logging.getLogger("BitBake")
try:
--
1.9.1
More information about the bitbake-devel
mailing list