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(

Reply via email to