diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2016-02-18 14:42:42 +0000 |
---|---|---|
committer | Baserock Gerrit <gerrit@baserock.org> | 2016-02-24 17:10:17 +0000 |
commit | 7e15ed7080c45f5283938e86af33fe4794b91b43 (patch) | |
tree | 90a2971ebfd4617bb51f01f6e39db3fe812e1a3f /morphlib/morphloader.py | |
parent | bda9fe51c8e22d4c8c5ad8325094abd6ed25706d (diff) | |
download | morph-7e15ed7080c45f5283938e86af33fe4794b91b43.tar.gz |
Avoid stack overflow in cachekeycomputer
I managed to trigger a stack overflow in Morph, by having two chunks with
the same name and same build instructions in different strata (by mistake,
obviously).
The error before was this:
....
File "/src/morph/morphlib/cachekeycomputer.py", line 77, in get_cache_id
cacheid = self._calculate(source)
File "/src/morph/morphlib/cachekeycomputer.py", line 86, in _calculate
for a in source.dependencies],
File "/src/morph/morphlib/cachekeycomputer.py", line 38, in compute_key
ret = self._hash_id(self.get_cache_id(source))
File "/src/morph/morphlib/cachekeycomputer.py", line 77, in get_cache_id
cacheid = self._calculate(source)
File "/src/morph/morphlib/cachekeycomputer.py", line 83, in _calculate
'env': self._filterenv(self._build_env.env),
File "/src/morph/morphlib/cachekeycomputer.py", line 32, in _filterenv
return dict([(k, env[k]) for k in keys])
RuntimeError: maximum recursion depth exceeded while calling a Python object
The error afterwards is this:
2016-02-18 13:53:14 Deciding on task order
ERROR: There are multiple versions of component 'cython'
Change-Id: I96a41cabe4d9aa81bddc5186c5248a636a0843c2
Diffstat (limited to 'morphlib/morphloader.py')
0 files changed, 0 insertions, 0 deletions