Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH] emerge: default --backtrack=3 (bug #536926)
Date: Sat, 17 Jan 2015 22:57:50
Message-Id: 1421535443-4784-1-git-send-email-zmedico@gentoo.org
1 The previous default emerge --backtrack=10 setting could lead to lots
2 of wasted cpu time in cases where it will ultimately fail to find a
3 valid solution anyway. Therefore, reduce the default to --backtrack=3.
4
5 In order for the BacktrackingTestCase.testBacktrackNoWrongRebuilds to
6 succeed, the test now needs to specify --backtrack=6. This is a rather
7 obscure case though, so it does not seem worthwhile to increase the
8 default because of it.
9
10 X-Gentoo-Bug: 536926
11 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=536926
12 ---
13 man/emerge.1 | 2 +-
14 pym/_emerge/depgraph.py | 2 +-
15 pym/portage/tests/resolver/test_backtracking.py | 7 ++++++-
16 3 files changed, 8 insertions(+), 3 deletions(-)
17
18 diff --git a/man/emerge.1 b/man/emerge.1
19 index aea7cae..fd9140f 100644
20 --- a/man/emerge.1
21 +++ b/man/emerge.1
22 @@ -384,7 +384,7 @@ precedence over existing changes. This option is automatically enabled with
23 .BR \-\-backtrack=COUNT
24 Specifies an integer number of times to backtrack if
25 dependency calculation fails due to a conflict or an
26 -unsatisfied dependency (default: \'10\').
27 +unsatisfied dependency (default: \'3\').
28 .TP
29 .BR "\-\-binpkg\-changed\-deps [ y | n ]"
30 Tells emerge to ignore binary packages for which the corresponding
31 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
32 index 1431779..5e94a04 100644
33 --- a/pym/_emerge/depgraph.py
34 +++ b/pym/_emerge/depgraph.py
35 @@ -8941,7 +8941,7 @@ def _backtrack_depgraph(settings, trees, myopts, myparams, myaction, myfiles, sp
36
37 debug = "--debug" in myopts
38 mydepgraph = None
39 - max_retries = myopts.get('--backtrack', 10)
40 + max_retries = myopts.get('--backtrack', 3)
41 max_depth = max(1, (max_retries + 1) // 2)
42 allow_backtracking = max_retries > 0
43 backtracker = Backtracker(max_depth)
44 diff --git a/pym/portage/tests/resolver/test_backtracking.py b/pym/portage/tests/resolver/test_backtracking.py
45 index 3b69eda..f3592c9 100644
46 --- a/pym/portage/tests/resolver/test_backtracking.py
47 +++ b/pym/portage/tests/resolver/test_backtracking.py
48 @@ -154,7 +154,12 @@ class BacktrackingTestCase(TestCase):
49
50 world = ["dev-libs/B", "dev-libs/C"]
51
52 - options = {'--update' : True, '--deep' : True, '--selective' : True}
53 + options = {
54 + '--backtrack': 6,
55 + '--deep' : True,
56 + '--selective' : True,
57 + '--update' : True,
58 + }
59
60 test_cases = (
61 ResolverPlaygroundTestCase(
62 --
63 2.0.5

Replies