commit:     a9a62e57194ccefce1ecabb9df761993f35f53be
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 23 22:03:35 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jun 23 22:15:13 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=a9a62e57

SpawnProcess._unregister: cancel PipeLogger (bug 658806)

If the PipeLogger has not closed itself before the _unregister
method has been called, then it must be cancelled so that it
will close the log immediately. This fixes the case reported
in bug 658806, where an unclosed PipeLogger instance left the
log file with a temporarily incomplete gzip stream.

Bug: https://bugs.gentoo.org/658806

 pym/_emerge/SpawnProcess.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pym/_emerge/SpawnProcess.py b/pym/_emerge/SpawnProcess.py
index f592c543d..cd535d143 100644
--- a/pym/_emerge/SpawnProcess.py
+++ b/pym/_emerge/SpawnProcess.py
@@ -176,6 +176,9 @@ class SpawnProcess(SubProcess):
                if self.cgroup is not None:
                        self._cgroup_cleanup()
                        self.cgroup = None
+               if self._pipe_logger is not None:
+                       self._pipe_logger.cancel()
+                       self._pipe_logger = None
 
        def _cancel(self):
                SubProcess._cancel(self)

Reply via email to