commit: 334946eadc7efb457062c7aba9d3b51085e463c3 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Tue Oct 24 22:33:20 2023 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Tue Oct 24 22:34:25 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=334946ea
SonameAtom: multiprocessing spawn compat Do not pickle the SonameAtom _hash_value attribute, since hash() results are not meaningfully picklable. Bug: https://bugs.gentoo.org/916248 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/portage/dep/soname/SonameAtom.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/portage/dep/soname/SonameAtom.py b/lib/portage/dep/soname/SonameAtom.py index 78129f3262..421ab3f5a2 100644 --- a/lib/portage/dep/soname/SonameAtom.py +++ b/lib/portage/dep/soname/SonameAtom.py @@ -20,11 +20,15 @@ class SonameAtom: ) def __getstate__(self): - return {k: getattr(self, k) for k in self.__slots__} + state = {k: getattr(self, k) for k in self.__slots__} + # hash() results are not meaningfully picklable. + state["_hash_value"] = None + return state def __setstate__(self, state): for k, v in state.items(): object.__setattr__(self, k, v) + object.__setattr__(self, "_hash_value", hash(self._hash_key)) def __hash__(self): return self._hash_value
