diff options
author | Tom Pollard <tom.pollard@codethink.co.uk> | 2019-04-17 15:35:53 +0100 |
---|---|---|
committer | Tom Pollard <tom.pollard@codethink.co.uk> | 2019-04-17 16:47:27 +0100 |
commit | c2673f4a42c3925abb58dfc91196bb37ab5456af (patch) | |
tree | 1fed2ddbca36b3b346a228b4bb4ed7bf523f2cd8 /buildstream/_artifact.py | |
parent | 5790aa5b4536c39c97181cb16e5c84465ddd7bbf (diff) | |
download | buildstream-c2673f4a42c3925abb58dfc91196bb37ab5456af.tar.gz |
element.py: Discard __artifact/__strict_artifact in update_state()
When we determine that current cache keys are to be discarded, we
should also discard the associated members for correctness. This
should act as a safeguard against accessing Artifact instances that
have discarded cache keys.
A side effect of this is the querying of element buildtree state
from cli methods on elements that don't have a cached artifact
would lead to the artifact member methods not being reachable.
Ensuring the element is cached before trying to call said accessor
methods resolves this.
Diffstat (limited to 'buildstream/_artifact.py')
-rw-r--r-- | buildstream/_artifact.py | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/buildstream/_artifact.py b/buildstream/_artifact.py index 41dc14367..4d9e4bf08 100644 --- a/buildstream/_artifact.py +++ b/buildstream/_artifact.py @@ -195,17 +195,13 @@ class Artifact(): # # Returns: # (bool): True if artifact cached with buildtree, False if - # element not cached or missing expected buildtree. - # Note this only confirms if a buildtree is present, - # not its contents. + # missing expected buildtree. Note this only confirms + # if a buildtree is present, not its contents. # def cached_buildtree(self): element = self._element - if not element._cached(): - return False - key = self.get_extract_key() if not self._artifacts.contains_subdir_artifact(element, key, 'buildtree'): return False @@ -222,9 +218,6 @@ class Artifact(): # def buildtree_exists(self): - if not self._element._cached(): - return False - artifact_vdir, _ = self._get_directory() return artifact_vdir._exists('buildtree') |