Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH 0/2] Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746)
Date: Fri, 19 Jun 2020 20:39:42
Message-Id: 20200619203919.22519-1-zmedico@gentoo.org
1 This variable specifies a command that filters build log output to a
2 log file. The plan is to extend this to support a separate filter for
3 tty output in the future.
4
5 Previous versions of these patches were affected by bug 716636 which
6 was due to unsafe remove_reader and remove_writer calls in finally
7 clauses of the PipeLogger _io_loop coroutine. The remove_reader and
8 remove_writer calls are now skipped if the corresponding file object
9 has already been closed (which is normal if the coroutine has been
10 cancelled). Since this kind of bug is not easy to reproduce, currently
11 Rick Farina <zerochaos@g.o> is testing the patches in order to
12 verify that they do not trigger emerge hangs like bug 716636.
13
14 Bug: https://bugs.gentoo.org/709746
15 Bug: https://bugs.gentoo.org/716636
16
17 Zac Medico (2):
18 PipeLogger: non-blocking write to pipe (bug 709746)
19 Support PORTAGE_LOG_FILTER_FILE_CMD (bug 709746)
20
21 lib/_emerge/AbstractEbuildProcess.py | 3 +-
22 lib/_emerge/BinpkgFetcher.py | 3 +-
23 lib/_emerge/EbuildFetcher.py | 3 +-
24 lib/_emerge/EbuildPhase.py | 47 ++++++--
25 lib/_emerge/SpawnProcess.py | 58 +++++++---
26 lib/portage/dbapi/_MergeProcess.py | 3 +-
27 .../ebuild/_config/special_env_vars.py | 8 +-
28 lib/portage/tests/process/test_PipeLogger.py | 58 ++++++++++
29 lib/portage/util/_async/BuildLogger.py | 109 ++++++++++++++++++
30 lib/portage/util/_async/PipeLogger.py | 73 +++++++++---
31 lib/portage/util/_async/SchedulerInterface.py | 32 ++++-
32 man/make.conf.5 | 7 +-
33 12 files changed, 358 insertions(+), 46 deletions(-)
34 create mode 100644 lib/portage/tests/process/test_PipeLogger.py
35 create mode 100644 lib/portage/util/_async/BuildLogger.py
36
37 --
38 2.25.3

Replies