summaryrefslogtreecommitdiff
path: root/ugarit-backend-s3.scm
diff options
context:
space:
mode:
authorPeter Bex <peter@more-magic.net>2021-09-07 14:41:23 +0200
committerPeter Bex <peter@more-magic.net>2021-09-07 14:41:26 +0200
commitea8e0b90033e2f2ccd2b62e81cd546aefb3d0e07 (patch)
treeb17b8e826c02995cfcab4f51710d3b5553cc0358 /ugarit-backend-s3.scm
parent541d94982f9f9a70425302dc844bbbaea50a72f6 (diff)
downloadugarit-backend-s3-ea8e0b90033e2f2ccd2b62e81cd546aefb3d0e07.tar.gz
Allow for type file to be missing when data file is there
This is an edge case that we go through some lengths to avoid by always deleting the type file when the data file couldn't be stored. However, if the process is simply killed before we can delete the file, we may end in an inconsistent state. Hopefully this avoids that situation.
Diffstat (limited to 'ugarit-backend-s3.scm')
-rw-r--r--ugarit-backend-s3.scm1
1 files changed, 1 insertions, 0 deletions
diff --git a/ugarit-backend-s3.scm b/ugarit-backend-s3.scm
index 4708418..2c59d20 100644
--- a/ugarit-backend-s3.scm
+++ b/ugarit-backend-s3.scm
@@ -164,6 +164,7 @@
(lambda () (void)) ; flush! - a no-op for us
(lambda (key) ; exists?
(and (object-exists? (make-name key ".data"))
+ (object-exists? (make-name key ".type"))
(get-sexp (make-name key ".type"))))
(lambda (key) ; get
(maybe-missing (get-u8vector (make-name key ".data"))))