From: Zac Medico Date: Thu, 11 Apr 2013 23:13:49 +0000 (-0700) Subject: depgraph: don't _skip_restart for blockers X-Git-Tag: v2.2.0_alpha172 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=62dbcaa4d873784f1082c184668fcdc34392925b;p=portage.git depgraph: don't _skip_restart for blockers This prevents blockers from interfering with backtracking, as reported in bug #465356, comment #15. --- 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 \