From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1SFsVV-0001Yb-RH for garchives@archives.gentoo.org; Thu, 05 Apr 2012 19:38:10 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BD89DE0716; Thu, 5 Apr 2012 19:37:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 86926E0716 for ; Thu, 5 Apr 2012 19:37:57 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BB8A31B401F for ; Thu, 5 Apr 2012 19:37:56 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 82A2AE5403 for ; Thu, 5 Apr 2012 19:37:55 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1333654660.eba99d86fe3bf43488c5df09419218d4b2941e90.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/resolver/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/resolver/slot_collision.py X-VCS-Directories: pym/_emerge/resolver/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: eba99d86fe3bf43488c5df09419218d4b2941e90 X-VCS-Branch: master Date: Thu, 5 Apr 2012 19:37:55 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 5c0b88a9-9a00-430d-8ef7-6eb5e1edb29a X-Archives-Hash: 7a15147966d9dcf73520302b5fa55643 commit: eba99d86fe3bf43488c5df09419218d4b2941e90 Author: Zac Medico gentoo org> AuthorDate: Thu Apr 5 19:37:40 2012 +0000 Commit: Zac Medico gentoo org> CommitDate: Thu Apr 5 19:37:40 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3Deba99d86 Limit long slot conflict loop for bug #410801. --- pym/_emerge/resolver/slot_collision.py | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolve= r/slot_collision.py index 1d522aa..a1c8714 100644 --- a/pym/_emerge/resolver/slot_collision.py +++ b/pym/_emerge/resolver/slot_collision.py @@ -1,4 +1,4 @@ -# Copyright 2010-2011 Gentoo Foundation +# Copyright 2010-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 =20 from __future__ import print_function @@ -80,6 +80,8 @@ class slot_conflict_handler(object): the needed USE changes and prepare the message for the user. """ =20 + _check_configuration_max =3D 1024 + def __init__(self, depgraph): self.depgraph =3D depgraph self.myopts =3D depgraph._frozen_config.myopts @@ -663,14 +665,24 @@ class slot_conflict_handler(object): =20 solutions =3D [] sol_gen =3D _solution_candidate_generator(all_involved_flags) - while(True): + checked =3D 0 + while True: candidate =3D sol_gen.get_candidate() if not candidate: break solution =3D self._check_solution(config, candidate, all_conflict_ato= ms_by_slotatom) + checked +=3D 1 if solution: solutions.append(solution) - =09 + + if checked >=3D self._check_configuration_max: + # TODO: Implement early elimination for candidates that would + # change forced or masked flags, and don't count them here. + if self.debug: + writemsg("\nAborting _check_configuration due to " + "excessive number of candidates.\n", noiselevel=3D-1) + break + if self.debug: if not solutions: writemsg("No viable solutions. Rejecting configuration.\n", noiselev= el=3D-1)