[OE-core] [PATCH] report-error: Add a check for binary log file

Richard Purdie richard.purdie at linuxfoundation.org
Fri Jan 30 10:24:54 UTC 2015


On Thu, 2015-01-29 at 16:36 +0000, Michael Wood wrote:
> Check to see if the log file is a binary. If it is do not try to submit
> it in our error-report.
> 
> [YOCTO #7263]
> 
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
>  meta/classes/report-error.bbclass | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/report-error.bbclass b/meta/classes/report-error.bbclass
> index 8b30422..101fe9b 100644
> --- a/meta/classes/report-error.bbclass
> +++ b/meta/classes/report-error.bbclass
> @@ -24,6 +24,15 @@ def errorreport_savedata(e, newdata, file):
>          json.dump(newdata, f, indent=4, sort_keys=True)
>      return datafile
>  
> +def errorreport_testlogforbinary(data):
> +    for c in data:
> +      # If the data contains non visible character below 10 it's a binary
> +      if (ord(c) < 10):
> +        return True
> +
> +    return False
> +
> +
>  python errorreport_handler () {
>          import json
>  
> @@ -48,7 +57,13 @@ python errorreport_handler () {
>              taskdata['task'] = task
>              if log:
>                  logFile = open(log, 'r')
> -                taskdata['log'] = logFile.read()
> +                # Detect binary log output
> +                logdata = logFile.read()
> +                if  errorreport_testlogforbinary(logdata):
> +                    taskdata['log'] = "Log in binary format"
> +                else:
> +                    taskdata['log'] = logdata
> +
>                  logFile.close()
>              else:
>                  taskdata['log'] = "No Log"

I was thinking about this a bit more. How about we put a try/except
around the json code which sets taskdata['log'] = "Log in binary format"
if the original coding doesn't work for any reason? That way we should
catch any problem with the log?

Cheers,

Richard






More information about the Openembedded-core mailing list