Eventually, fd_pipes can be supported by ForkProcess (bug 915896). However, there's no need for the MergeProcess elog and mtime pipes to be coupled to fd_pipes, so they should be decoupled from fd_pipes and use multiprocessing.Pipe to pass picklable connections as arguments to the target function.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=d92d69a52b2b127a0934656163f7075015ef7c85 commit d92d69a52b2b127a0934656163f7075015ef7c85 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2023-10-17 19:05:07 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2023-10-17 19:14:54 +0000 MergeProcess: Use multiprocessing.Pipe to decouple fd_pipes Use multiprocessing.Pipe to decouple from the fd_pipes implementation since that currently only works for the multiprocessing "fork" start method. Bug: https://bugs.gentoo.org/915903 Signed-off-by: Zac Medico <zmedico@gentoo.org> lib/portage/dbapi/_MergeProcess.py | 25 ++++++++++--------------- lib/portage/dbapi/vartree.py | 2 +- 2 files changed, 11 insertions(+), 16 deletions(-)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3500483f75789c36e379c1b6546a09df7c11e2b1 commit 3500483f75789c36e379c1b6546a09df7c11e2b1 Author: Sam James <sam@gentoo.org> AuthorDate: 2023-10-20 00:49:33 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-10-20 00:51:00 +0000 sys-apps/portage: add 3.0.53 Closes: https://bugs.gentoo.org/915120 Closes: https://bugs.gentoo.org/821529 Closes: https://bugs.gentoo.org/914441 Closes: https://bugs.gentoo.org/914722 Closes: https://bugs.gentoo.org/914873 Closes: https://bugs.gentoo.org/915099 Closes: https://bugs.gentoo.org/915123 Closes: https://bugs.gentoo.org/915128 Closes: https://bugs.gentoo.org/915136 Closes: https://bugs.gentoo.org/915330 Closes: https://bugs.gentoo.org/915494 Closes: https://bugs.gentoo.org/915834 Closes: https://bugs.gentoo.org/915903 Closes: https://bugs.gentoo.org/900224 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.53.ebuild | 238 +++++++++++++++++++++++++++++++++ 2 files changed, 239 insertions(+)