From c5ecd444e44e2e5cb8cef05453bc42e3828e17b2 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Fri, 17 Apr 2020 14:27:55 -0700 Subject: [PATCH] fix: retry deletes --- flatfs.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/flatfs.go b/flatfs.go index d0767a3..9d372cd 100644 --- a/flatfs.go +++ b/flatfs.go @@ -726,16 +726,22 @@ func (fs *Datastore) doDelete(key datastore.Key) error { fSize := fileSize(path) - switch err := os.Remove(path); { - case err == nil: + var err error + for i := 0; i < RetryAttempts; i++ { + err = os.Remove(path) + if err == nil { + break + } else if os.IsNotExist(err) { + return nil + } + } + + if err == nil { atomic.AddInt64(&fs.diskUsage, -fSize) fs.checkpointDiskUsage() - return nil - case os.IsNotExist(err): - return nil - default: - return err } + + return err } func (fs *Datastore) Query(q query.Query) (query.Results, error) {