commit:     528bec60c4c7b32c2545d91ba4ee91e543b0d5c9
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  2 18:32:58 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Aug  2 18:43:58 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=528bec60

Scheduler: cancel job delay timeout after main loop (bug 662668)

This fixes the following error during emerge --keep-going
dependency calculation:

Exception in callback PollScheduler._schedule()
handle: <TimerHandle when=44692.1015056609 PollScheduler._schedule()>
Traceback (most recent call last):
  File "/usr/lib64/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/usr/lib64/python3.6/site-packages/_emerge/PollScheduler.py", line 154, 
in _schedule
    self._schedule_tasks()
  File "/usr/lib64/python3.6/site-packages/_emerge/Scheduler.py", line 1605, in 
_schedule_tasks
    self._keep_scheduling() or self._main_exit.done()):
AttributeError: 'NoneType' object has no attribute 'done'

Reported-by: Rick Farina <zerochaos <AT> gentoo.org>
Bug: https://bugs.gentoo.org/662668

 lib/_emerge/Scheduler.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index 422308184..49b376281 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -1436,6 +1436,9 @@ class Scheduler(PollScheduler):
                if self._main_loadavg_handle is not None:
                        self._main_loadavg_handle.cancel()
                        self._main_loadavg_handle = None
+               if self._job_delay_timeout_id is not None:
+                       self._job_delay_timeout_id.cancel()
+                       self._job_delay_timeout_id = None
 
        def _choose_pkg(self):
                """

Reply via email to