commit: fba76a545f29fb8b529197c25c64700ef77413ae
Author: Matoro Mahri <matoro_gentoo <AT> matoro <DOT> tk>
AuthorDate: Wed Jan 31 20:25:40 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Feb 9 07:08:22 2024 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=fba76a54
gpkg: on error, close stdin before killing external programs
Otherwise, this may trigger a BrokenPipeError. Sensitive to buffer
fullness, this was observed on 64k page size system immediately after
triggering E2BIG error from kernel.
Signed-off-by: Matoro Mahri <matoro_gentoo <AT> matoro.tk>
Signed-off-by: Sam James <sam <AT> gentoo.org>
lib/portage/gpkg.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/portage/gpkg.py b/lib/portage/gpkg.py
index 031b3f87cb..05f1b5f2a6 100644
--- a/lib/portage/gpkg.py
+++ b/lib/portage/gpkg.py
@@ -149,9 +149,9 @@ class tar_stream_writer:
kill external program if any error happened in python
"""
if self.proc is not None:
- self.killed = True
- self.proc.kill()
self.proc.stdin.close()
+ self.proc.kill()
+ self.killed = True
self.close()
def _cmd_read_thread(self):
@@ -347,9 +347,9 @@ class tar_stream_reader:
kill external program if any error happened in python
"""
if self.proc is not None:
- self.killed = True
- self.proc.kill()
self.proc.stdin.close()
+ self.proc.kill()
+ self.killed = True
self.close()
def read(self, bufsize=-1):