From 62dbcaa4d873784f1082c184668fcdc34392925b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 11 Apr 2013 16:13:49 -0700 Subject: [PATCH] depgraph: don't _skip_restart for blockers This prevents blockers from interfering with backtracking, as reported in bug #465356, comment #15. --- pym/_emerge/depgraph.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index a00c7fb03..99b96bf2f 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -5813,7 +5813,9 @@ class depgraph(object): self._slot_operator_trigger_reinstalls() if not self._validate_blockers(): - self._dynamic_config._skip_restart = True + # Blockers don't trigger the _skip_restart flag, since + # backtracking may solve blockers when it solves slot + # conflicts (or by blind luck). raise self._unknown_internal_error() def _serialize_tasks(self): @@ -6562,7 +6564,9 @@ class depgraph(object): self._dynamic_config._unsatisfied_blockers_for_display = unsolvable_blockers self._dynamic_config._serialized_tasks_cache = retlist[:] self._dynamic_config._scheduler_graph = scheduler_graph - self._dynamic_config._skip_restart = True + # Blockers don't trigger the _skip_restart flag, since + # backtracking may solve blockers when it solves slot + # conflicts (or by blind luck). raise self._unknown_internal_error() if self._dynamic_config._slot_collision_info and \ -- 2.26.2