linamh/sys-apps/entropy/files/0001-entropy.client-fixes-for-dictionary-changed-size-dur.patch
2021-08-20 15:58:48 +02:00

44 lines
1.9 KiB
Diff

From 08da648a202d3c8587fedf7ef83f557fef41e2d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C5=82awomir=20Nizio?= <slawomir.nizio@sabayon.org>
Date: Wed, 18 Dec 2019 22:20:29 +0100
Subject: [PATCH] [entropy.client] fixes for "dictionary changed size during
iteration"
---
lib/entropy/client/interfaces/db.py | 4 ++--
lib/entropy/client/interfaces/dep.py | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git lib/entropy/client/interfaces/db.py lib/entropy/client/interfaces/db.py
index 7e7856e65..2a03580da 100644
--- lib/entropy/client/interfaces/db.py
+++ lib/entropy/client/interfaces/db.py
@@ -2564,8 +2564,8 @@ class MaskableRepository(EntropyRepositoryBase):
# if we get here, it means we didn't find a match in repositories
# so we scan packages, last chance
- for keyword in keyword_pkg.keys():
- # use .keys() because keyword_pkg gets modified during iteration
+ for keyword in list(keyword_pkg.keys()):
+ # use list() because keyword_pkg gets modified during iteration
# first of all check if keyword is in mykeywords
if keyword not in mykeywords:
diff --git lib/entropy/client/interfaces/dep.py lib/entropy/client/interfaces/dep.py
index 52bc611c1..ecbae5e4d 100644
--- lib/entropy/client/interfaces/dep.py
+++ lib/entropy/client/interfaces/dep.py
@@ -2855,7 +2855,8 @@ class CalculatorsMixin:
change = False
# now try to deeply remove unused packages
# iterate over a copy
- for pkg_match in deep_dep_map.keys():
+ # list() because the dict gets modified in setup_revdeps()
+ for pkg_match in list(deep_dep_map.keys()):
deep_dep_map[pkg_match] -= flat_dep_tree
if (not deep_dep_map[pkg_match]) and \
(pkg_match not in flat_dep_tree):
--
2.23.0