commit: 1891388ea0ae0dd58903a71a3adc779731523601 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sat Jan 17 22:56:47 2015 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Jan 18 18:54:24 2015 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1891388e
emerge: default --backtrack=3 (bug #536926) The previous default emerge --backtrack=10 setting could lead to lots of wasted cpu time in cases where it will ultimately fail to find a valid solution anyway. Therefore, reduce the default to --backtrack=3. In order for the BacktrackingTestCase.testBacktrackNoWrongRebuilds to succeed, the test now needs to specify --backtrack=6. This is a rather obscure case though, so it does not seem worthwhile to increase the default because of it. X-Gentoo-Bug: 536926 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=536926 Acked-by: Brian Dolbec <dolsen <AT> gentoo.org> --- man/emerge.1 | 2 +- pym/_emerge/depgraph.py | 2 +- pym/portage/tests/resolver/test_backtracking.py | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/man/emerge.1 b/man/emerge.1 index aea7cae..fd9140f 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -384,7 +384,7 @@ precedence over existing changes. This option is automatically enabled with .BR \-\-backtrack=COUNT Specifies an integer number of times to backtrack if dependency calculation fails due to a conflict or an -unsatisfied dependency (default: \'10\'). +unsatisfied dependency (default: \'3\'). .TP .BR "\-\-binpkg\-changed\-deps [ y | n ]" Tells emerge to ignore binary packages for which the corresponding diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 3e9bfdd..1184dd6 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -8950,7 +8950,7 @@ def _backtrack_depgraph(settings, trees, myopts, myparams, myaction, myfiles, sp debug = "--debug" in myopts mydepgraph = None - max_retries = myopts.get('--backtrack', 10) + max_retries = myopts.get('--backtrack', 3) max_depth = max(1, (max_retries + 1) // 2) allow_backtracking = max_retries > 0 backtracker = Backtracker(max_depth) diff --git a/pym/portage/tests/resolver/test_backtracking.py b/pym/portage/tests/resolver/test_backtracking.py index 3b69eda..6567153 100644 --- a/pym/portage/tests/resolver/test_backtracking.py +++ b/pym/portage/tests/resolver/test_backtracking.py @@ -1,4 +1,4 @@ -# Copyright 2010-2014 Gentoo Foundation +# Copyright 2010-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from portage.tests import TestCase @@ -154,7 +154,12 @@ class BacktrackingTestCase(TestCase): world = ["dev-libs/B", "dev-libs/C"] - options = {'--update' : True, '--deep' : True, '--selective' : True} + options = { + '--backtrack': 6, + '--deep' : True, + '--selective' : True, + '--update' : True, + } test_cases = ( ResolverPlaygroundTestCase(