diff options
author | Zac Medico <zmedico@gentoo.org> | 2020-06-13 16:59:43 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2020-06-13 17:00:16 -0700 |
commit | 54cdf7e6cf9ec2030283ab23d659e10562267c6b (patch) | |
tree | 6c333464811acf473a71f4c9dcfe5c18df91b23c | |
parent | PipeLogger: non-blocking write to pipe (bug 709746) (diff) | |
download | portage-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.py | 7 |
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: |