1 |
Since commit 55c8c8bc7a781e3f71ce92922eea64ad4cafce3c, emerge --search |
2 |
can raise an unhandled KeyError if a pkg_desc_index contains a stale |
3 |
package. Handle it with the same error message used for other aux_get |
4 |
failures. |
5 |
|
6 |
Fixes: 55c8c8bc7a78 ("Add emerge --search-index option.") |
7 |
X-Gentoo-Bug: 525718 |
8 |
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=525718 |
9 |
--- |
10 |
pym/_emerge/search.py | 20 ++++++++++++++++---- |
11 |
1 file changed, 16 insertions(+), 4 deletions(-) |
12 |
|
13 |
diff --git a/pym/_emerge/search.py b/pym/_emerge/search.py |
14 |
index 90dbcec..76adcea 100644 |
15 |
--- a/pym/_emerge/search.py |
16 |
+++ b/pym/_emerge/search.py |
17 |
@@ -166,8 +166,14 @@ class search(object): |
18 |
else: |
19 |
db_keys = list(db._aux_cache_keys) |
20 |
for cpv in db.match(atom): |
21 |
- metadata = zip(db_keys, |
22 |
- db.aux_get(cpv, db_keys)) |
23 |
+ try: |
24 |
+ metadata = zip(db_keys, |
25 |
+ db.aux_get(cpv, db_keys)) |
26 |
+ except KeyError: |
27 |
+ portage.writemsg("emerge: search: " |
28 |
+ "aux_get() failed, skipping\n", |
29 |
+ noiselevel=-1) |
30 |
+ continue |
31 |
if not self._visible(db, cpv, metadata): |
32 |
continue |
33 |
matches.add(cpv) |
34 |
@@ -197,8 +203,14 @@ class search(object): |
35 |
for cpv in reversed(matches): |
36 |
if portage.cpv_getkey(cpv) != cp: |
37 |
continue |
38 |
- metadata = zip(db_keys, |
39 |
- db.aux_get(cpv, db_keys)) |
40 |
+ try: |
41 |
+ metadata = zip(db_keys, |
42 |
+ db.aux_get(cpv, db_keys)) |
43 |
+ except KeyError: |
44 |
+ portage.writemsg("emerge: search: " |
45 |
+ "aux_get() failed, skipping\n", |
46 |
+ noiselevel=-1) |
47 |
+ continue |
48 |
if not self._visible(db, cpv, metadata): |
49 |
continue |
50 |
if not result or cpv == portage.best([cpv, result]): |
51 |
-- |
52 |
2.0.4 |