From 49c415424d97fe13b42710b93686efa716123a04 Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Fri, 22 Sep 2023 12:50:05 +0200 Subject: [PATCH] Ignore encoding errors in logs Found while compiling io.privatestorage.privatestoragemobile_9: Traceback (most recent call last): File "/home/fdroid/fdroidserver/fdroidserver/build.py", line 1053, in main if trybuild(app, build, build_dir, output_dir, log_dir, File "/home/fdroid/fdroidserver/fdroidserver/build.py", line 813, in trybuild build_server(app, build, vcs, build_dir, output_dir, log_dir, force) File "/home/fdroid/fdroidserver/fdroidserver/build.py", line 253, in build_server logging.debug("buildserver > " + str(line, 'utf-8').rstrip()) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfa in position 8: invalid start byte --- fdroidserver/build.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 71fd20bc..b30ea509 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -250,13 +250,13 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force): line = cmd_stdout.readline() if line: if options.verbose: - logging.debug("buildserver > " + str(line, 'utf-8').rstrip()) + logging.debug("buildserver > " + str(line, 'utf-8', 'replace').rstrip()) output += line else: time.sleep(0.05) for line in cmd_stdout.readlines(): if options.verbose: - logging.debug("buildserver > " + str(line, 'utf-8').rstrip()) + logging.debug("buildserver > " + str(line, 'utf-8', 'replace').rstrip()) output += line finally: cmd_stdout.close() @@ -270,7 +270,7 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force): else: message = "Build.py failed on server for {0}:{1}" raise BuildException(message.format(app.id, build.versionName), - str(output, 'utf-8')) + str(output, 'utf-8', 'replace')) # Retreive logs... toolsversion_log = common.get_toolsversion_logname(app, build) @@ -296,7 +296,7 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force): except Exception as exc: raise BuildException( "Build failed for {0}:{1} - missing output files".format( - app.id, build.versionName), str(output, 'utf-8')) from exc + app.id, build.versionName), str(output, 'utf-8', 'replace')) from exc ftp.close() finally: