Commit 93e89b3b7e

Ben Noordhuis <info@bnoordhuis.nl>
2019-04-13 12:33:29
don't close cache manifest file prematurely
ErrorInvalidFormat is not a fatal error so don't close the cache manifest file right away but instead let cache_final() handle it. Fixes the following (very common) warning when running the test suite: Warning: Unable to write cache file [..]: unexpected seek failure The seek failure is an lseek() system call that failed with EBADF because the file descriptor had already been closed.
1 parent ea5518f
Changed files (1)
src/cache_hash.cpp
@@ -437,7 +437,7 @@ Error cache_hit(CacheHash *ch, Buf *out_digest) {
                 return ErrorCacheUnavailable;
             }
         }
-        if (return_code != ErrorNone) {
+        if (return_code != ErrorNone && return_code != ErrorInvalidFormat) {
             os_file_close(&ch->manifest_file);
         }
         return return_code;