From 88429f018bbb15749f31067d5e7bf33c21b15f92 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Mon, 17 Sep 2012 17:43:31 -0500 Subject: bitbake: bitbake: Unbuffer stdout for log files It is possible to lose critical log data when python exits in an unorderly fashion via segmentation fault or certain types of crashes. This is because the buffer characteristics are inherited from the top level stdout, which should be set to unbuffered, for the purpose of all the forked children. This pushes the buffering to the OS, instead of having python managing the buffers in its stream handler class. This change is also to provide the ability to tail logs written from processes in "real time" because they would be written in an orderly fashion depending upon the OS characteristics for the file I/O. (Bitbake rev: c6a367bc3224adafca698a4ffc5414ad83842c16) Signed-off-by: Jason Wessel Signed-off-by: Richard Purdie --- bitbake/bin/bitbake | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'bitbake/bin/bitbake') diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 8c46024258..37c10451dc 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -43,6 +43,14 @@ from bb import server __version__ = "1.15.3" logger = logging.getLogger("BitBake") +# 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 class BBConfiguration(object): """ -- cgit v1.2.3-54-g00ecf