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] repoman: fix KeyError triggered by fetch failure during manifest generation (bug 569942)
Date: Mon, 28 Dec 2015 02:13:49
Message-Id: 1451268786-17054-1-git-send-email-zmedico@gentoo.org
1 Fix Scanner not to override portdbapi._aux_cache_keys when generating
2 manifests, since spawn_nofetch requires additional keys.
3
4 Fixes: 39d81c514c33 ("[...]config.__getitem__(): Partially drop backward compatibility for nonexistent keys.")
5 X-Gentoo-Bug: 569942
6 X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=569942
7 ---
8 pym/repoman/scanner.py | 10 +++++++---
9 1 file changed, 7 insertions(+), 3 deletions(-)
10
11 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
12 index 9a87f65..d1c10d7 100644
13 --- a/pym/repoman/scanner.py
14 +++ b/pym/repoman/scanner.py
15 @@ -93,9 +93,13 @@ class Scanner(object):
16 self.portdb.settings = self.repo_settings.repoman_settings
17 # We really only need to cache the metadata that's necessary for visibility
18 # filtering. Anything else can be discarded to reduce memory consumption.
19 - self.portdb._aux_cache_keys.clear()
20 - self.portdb._aux_cache_keys.update(
21 - ["EAPI", "IUSE", "KEYWORDS", "repository", "SLOT"])
22 + if self.options.mode != "manifest" and self.options.digest != "y":
23 + # Don't do this when generating manifests, since that uses
24 + # additional keys if spawn_nofetch is called (RESTRICT and
25 + # DEFINED_PHASES).
26 + self.portdb._aux_cache_keys.clear()
27 + self.portdb._aux_cache_keys.update(
28 + ["EAPI", "IUSE", "KEYWORDS", "repository", "SLOT"])
29
30 self.reposplit = myreporoot.split(os.path.sep)
31 self.repolevel = len(self.reposplit)
32 --
33 2.4.10

Replies