commit: 54cdf7e6cf9ec2030283ab23d659e10562267c6b Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sat Jun 13 23:59:43 2020 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Jun 14 00:00:16 2020 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=54cdf7e6
PipeLogger: fix FEATURES=compress-build-logs (bug 709746) For FEATURES=compress-build-logs, use log_file.write since data written directly to the file descriptor bypasses compression. Fixes: 3e46825a0470 ("PipeLogger: non-blocking write to pipe (bug 709746)") Bug: https://bugs.gentoo.org/709746 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/portage/util/_async/PipeLogger.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/portage/util/_async/PipeLogger.py b/lib/portage/util/_async/PipeLogger.py index 83669e05e..1776cc860 100644 --- a/lib/portage/util/_async/PipeLogger.py +++ b/lib/portage/util/_async/PipeLogger.py @@ -131,6 +131,13 @@ class PipeLogger(AbstractPollTask): fcntl.F_GETFL) ^ os.O_NONBLOCK) if log_file is not None: + if isinstance(log_file, gzip.GzipFile): + # Use log_file.write since data written directly + # to the file descriptor bypasses compression. + log_file.write(buf) + log_file.flush() + continue + write_buf = buf while write_buf: try: