aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2020-06-13 16:59:43 -0700
committerZac Medico <zmedico@gentoo.org>2020-06-13 17:00:16 -0700
commit54cdf7e6cf9ec2030283ab23d659e10562267c6b (patch)
tree6c333464811acf473a71f4c9dcfe5c18df91b23c
parentPipeLogger: non-blocking write to pipe (bug 709746) (diff)
downloadportage-54cdf7e6cf9ec2030283ab23d659e10562267c6b.tar.gz
portage-54cdf7e6cf9ec2030283ab23d659e10562267c6b.tar.bz2
portage-54cdf7e6cf9ec2030283ab23d659e10562267c6b.zip
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@gentoo.org>
-rw-r--r--lib/portage/util/_async/PipeLogger.py7
1 files changed, 7 insertions, 0 deletions
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: