From: Zac Medico Date: Mon, 30 Jul 2007 04:06:52 +0000 (-0000) Subject: For bug #181953, prevent the circular_blocks code from selecting a node that's alread... X-Git-Tag: v2.1.2.11~54 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1c59d0d4da316d407a169ffa24679bde1687f6c0;p=portage.git For bug #181953, prevent the circular_blocks code from selecting a node that's already been selected by the normal node selection process. (branches/2.1.2 r6838) svn path=/main/branches/2.1.2.9/; revision=7463 --- diff --git a/bin/emerge b/bin/emerge index 31868d2fb..244ed3c9f 100755 --- a/bin/emerge +++ b/bin/emerge @@ -2086,8 +2086,16 @@ class depgraph: if not circular_blocks: circular_blocks = True blocker_deps = myblockers.leaf_nodes() - if blocker_deps: - selected_nodes = [blocker_deps.pop()] + while blocker_deps: + # Some of these nodes might have already been selected + # by the normal node selection process after the + # circular_blocks flag has been set. Therefore, we + # have to verify that they're still in the graph so + # that they're not selected more than once. + node = blocker_deps.pop() + if mygraph.contains(node): + selected_nodes = [node] + break if not selected_nodes: # No leaf nodes are available, so we have a circular