aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2020-05-02 13:51:15 -0700
committerZac Medico <zmedico@gentoo.org>2020-05-02 14:04:37 -0700
commit687dbcb0ab2f7d254bdc53b1332b3d480b2de581 (patch)
treeb378e532bff5f55a17bd0c0fdf24503fb42d81b5 /lib/portage/cache/template.py
parentImport portage.util.netlink.RtNetlink in global scope (diff)
downloadportage-687dbcb0ab2f7d254bdc53b1332b3d480b2de581.tar.gz
portage-687dbcb0ab2f7d254bdc53b1332b3d480b2de581.tar.bz2
portage-687dbcb0ab2f7d254bdc53b1332b3d480b2de581.zip
anydbm: avoid interference between cleanse_keys and _eclasses_
Fix this AuxdbTestCase failure for anydbm: test_anydbm (portage.tests.dbapi.test_auxdb.AuxdbTestCase) ... Exception in callback None() handle: <Handle cancelled> Traceback (most recent call last): File "/usr/lib64/python3.6/asyncio/events.py", line 145, in _run self._callback(*self._args) File "lib/_emerge/EbuildMetadataPhase.py", line 143, in _output_handler self._async_waitpid() File "lib/_emerge/SubProcess.py", line 60, in _async_waitpid add_child_handler(self.pid, self._async_waitpid_cb) File "/usr/lib64/python3.6/asyncio/unix_events.py", line 873, in add_child_handler self._do_waitpid(pid) File "/usr/lib64/python3.6/asyncio/unix_events.py", line 919, in _do_waitpid callback(pid, returncode, *args) File "lib/_emerge/EbuildMetadataPhase.py", line 207, in _async_waitpid_cb self.repo_path, metadata, self.ebuild_hash) File "lib/portage/dbapi/porttree.py", line 545, in _write_cache cache[cpv] = metadata File "lib/portage/cache/template.py", line 146, in __setitem__ d["_eclasses_"] = self._internal_eclasses(d["_eclasses_"], File "lib/portage/cache/mappings.py", line 213, in __getitem__ raise KeyError(key) KeyError: '_eclasses_' Signed-off-by: Zac Medico <zmedico@gentoo.org>
Diffstat (limited to 'lib/portage/cache/template.py')
-rw-r--r--lib/portage/cache/template.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/portage/cache/template.py b/lib/portage/cache/template.py
index 8662d859f..6b4878347 100644
--- a/lib/portage/cache/template.py
+++ b/lib/portage/cache/template.py
@@ -133,7 +133,7 @@ class database(object):
d = None
if self.cleanse_keys:
d=ProtectedDict(values)
- for k, v in list(d.items()):
+ for k, v in list(item for item in d.items() if item[0] != "_eclasses_"):
if not v:
del d[k]
if "_eclasses_" in values: