]> code.ossystems Code Review - openembedded-core.git/commitdiff
resulttool/resultutils: Fix unicode error handling
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Feb 2020 17:23:54 +0000 (17:23 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Feb 2020 17:25:54 +0000 (17:25 +0000)
This error handling didn't work as expected since upon failure it would
inject bytestreams back into the code leading to tracebacks.

Instead, ignore the decode errors. Fixes:

Traceback (most recent call last):
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 78, in <module>
    sys.exit(main())
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/resulttool", line 72, in main
    ret = args.func(args, logger)
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/lib/resulttool/store.py", line 70, in store
    resultutils.save_resultsdata(results, tempdir, ptestlogs=True)
  File "/home/pokybuild/yocto-worker/a-full/build/scripts/lib/resulttool/resultutils.py", line 178, in save_resultsdata
    f.write(sectionlog)
TypeError: write() argument must be str, not bytes

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/lib/resulttool/resultutils.py

index f0ae8ec1c5ca0a4a950f36b0e135495a5496fd3e..5fec01f6f34c49b2aa5a46081cebd4e27f99107f 100644 (file)
@@ -127,10 +127,7 @@ def decode_log(logdata):
             data = logdata.get("compressed")
             data = base64.b64decode(data.encode("utf-8"))
             data = zlib.decompress(data)
-            try:
-                return data.decode("utf-8")
-            except UnicodeDecodeError:
-                return data
+            return data.decode("utf-8", errors='ignore')
     return None
 
 def ptestresult_get_log(results, section):