commit:     0b78b4a90657ef582a68258f27eaf521dfb42038
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Mar  3 05:39:44 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Mar  3 05:46:36 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=0b78b4a9

EbuildMetadataPhase: make _unregister idempotent (bug 711362)

Make the _unregister method check if self._files is None, as
necessary for idempotency. This will prevent the AttributeError
reported in bug 711362, which was triggered by recent changes
in callback scheduling order.

Closes: https://bugs.gentoo.org/711362
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/EbuildMetadataPhase.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/_emerge/EbuildMetadataPhase.py 
b/lib/_emerge/EbuildMetadataPhase.py
index 4940d40b6..efe71892c 100644
--- a/lib/_emerge/EbuildMetadataPhase.py
+++ b/lib/_emerge/EbuildMetadataPhase.py
@@ -144,7 +144,8 @@ class EbuildMetadataPhase(SubProcess):
                                                break
 
        def _unregister(self):
-               self.scheduler.remove_reader(self._files.ebuild)
+               if self._files is not None:
+                       self.scheduler.remove_reader(self._files.ebuild)
                SubProcess._unregister(self)
 
        def _async_waitpid_cb(self, *args, **kwargs):

Reply via email to