diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-08-30 21:02:27 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-08-30 21:02:27 +0900 |
commit | d23d4f3ea20dd12b4819fe6bb5eea1f44e34ea90 (patch) | |
tree | 963cf0447fd6eeff46b789f51ce1256e12c9b08c /buildstream/_artifactcache/artifactcache.py | |
parent | 02138181d1153835d77f6ca7b8dbe108c478a3b8 (diff) | |
download | buildstream-d23d4f3ea20dd12b4819fe6bb5eea1f44e34ea90.tar.gz |
_artifactcache/artifactcache.py: Write the cache_size file atomicallytristan/atomic-cache-size-file
This is causing issues while the size file is being read and written
simultaneously.
The proper fix will be to read/add/save the file atomically and that
will require locking, but this fix is a good stop gap to existing crashes.
Diffstat (limited to 'buildstream/_artifactcache/artifactcache.py')
-rw-r--r-- | buildstream/_artifactcache/artifactcache.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/buildstream/_artifactcache/artifactcache.py b/buildstream/_artifactcache/artifactcache.py index f28fe394f..f162c7f08 100644 --- a/buildstream/_artifactcache/artifactcache.py +++ b/buildstream/_artifactcache/artifactcache.py @@ -571,7 +571,7 @@ class ArtifactCache(): def _write_cache_size(self, size): assert isinstance(size, int) size_file_path = os.path.join(self.context.artifactdir, CACHE_SIZE_FILE) - with open(size_file_path, "w") as f: + with utils.save_file_atomic(size_file_path, "w") as f: f.write(str(size)) # _read_cache_size() |