Merge branch 'master' into 13937-keepstore-prometheus
[arvados.git] / services / keepstore / handlers.go
index 7da9f69adbae4c5fa2f21fe24128d66355bd7838..51dd73a513c1d4c729a6743aaabe0cefa1202c4b 100644 (file)
@@ -675,6 +675,11 @@ func GetBlock(ctx context.Context, hash string, buf []byte, resp http.ResponseWr
                        if !os.IsNotExist(err) {
                                log.Printf("%s: Get(%s): %s", vol, hash, err)
                        }
+                       // If some volume returns a transient error, return it to the caller
+                       // instead of "Not found" so it can retry.
+                       if err == VolumeBusyError {
+                               errorToCaller = err.(*KeepError)
+                       }
                        continue
                }
                // Check the file checksum.