summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-07-08 22:02:17 +0000
committerZac Medico <zmedico@gentoo.org>2009-07-08 22:02:17 +0000
commitd0fb18b6b0e205dfb0de99e590750fcd77662370 (patch)
tree69aa205e94d646dc4174d2188cbada096d1811e6
parent90ab9855f680b5d863d3b2535212fa5ac8a322c3 (diff)
downloadportage-d0fb18b6b0e205dfb0de99e590750fcd77662370.tar.gz
portage-d0fb18b6b0e205dfb0de99e590750fcd77662370.tar.bz2
portage-d0fb18b6b0e205dfb0de99e590750fcd77662370.zip
Add a --debug warning message inside _add_pkg in case a potentially infinite
backtracking loop is detected (it should never happen). svn path=/main/trunk/; revision=13808
-rw-r--r--pym/_emerge/depgraph.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 61edea2a8..6689f33e3 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -758,7 +758,19 @@ class depgraph(object):
return 1
else:
# A slot conflict has occurred.
+ # The existing node should not already be in
+ # runtime_pkg_mask, since that would trigger an
+ # infinite backtracking loop.
if self._dynamic_config._allow_backtracking and \
+ existing_node in \
+ self._dynamic_config._runtime_pkg_mask:
+ if "--debug" in self._frozen_config.myopts:
+ writemsg(
+ "!!! backtracking loop detected: %s %s\n" % \
+ (existing_node,
+ self._dynamic_config._runtime_pkg_mask[
+ existing_node]), noiselevel=-1)
+ elif self._dynamic_config._allow_backtracking and \
not self._accept_blocker_conflicts():
self._add_slot_conflict(pkg)
if dep.atom is not None and dep.parent is not None: