summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Ennis <james.ennis@codethink.co.uk>2019-06-25 12:07:31 +0100
committerJames Ennis <james.ennis@codethink.com>2019-06-26 08:36:20 +0000
commit1a65a14b235dd5572c2717efa9dc7bd1fdda1fd1 (patch)
treed9a79d1e228d82f7140b0ede129d71a6be053a7d
parent1c0bf810c6e5c8e01e9213acafb7079c8ce814a1 (diff)
downloadbuildstream-1a65a14b235dd5572c2717efa9dc7bd1fdda1fd1.tar.gz
_basecache.py: Don't leak the project specific remote caches
Make a copy of the global list rather than using the global list. This was originally addressed by: e1420437a2d82af099bdb3d273823effbea35ce4 and then again by 1ee4a4ba3a91e27515967d5e2daaedf664f10c78.
-rw-r--r--src/buildstream/_basecache.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/buildstream/_basecache.py b/src/buildstream/_basecache.py
index ef9414787..b600bbea8 100644
--- a/src/buildstream/_basecache.py
+++ b/src/buildstream/_basecache.py
@@ -153,10 +153,10 @@ class BaseCache():
# on_failure (callable): Called if we fail to contact one of the caches.
#
def initialize_remotes(self, *, on_failure=None):
- remote_specs = self.global_remote_specs
+ remote_specs = self.global_remote_specs.copy()
for project in self.project_remote_specs:
- remote_specs += self.project_remote_specs[project]
+ remote_specs.extend(self.project_remote_specs[project])
remote_specs = list(utils._deduplicate(remote_specs))