aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-08-19 03:36:15 -0700
committerchrislu <chris.lu@gmail.com>2022-08-19 03:36:15 -0700
commitaac45f3e89a2c1704e9f2d19c957d950e7268e2b (patch)
treec6f17636e7f3c595632a7f4e5b03a3f0ecf3b704
parent58dd8803224dd5340c54cecf843363fa2570905f (diff)
downloadseaweedfs-aac45f3e89a2c1704e9f2d19c957d950e7268e2b.tar.xz
seaweedfs-aac45f3e89a2c1704e9f2d19c957d950e7268e2b.zip
filer: retryable when error is not found
-rw-r--r--weed/server/volume_server_handlers_read.go6
-rw-r--r--weed/util/http_util.go2
2 files changed, 6 insertions, 2 deletions
diff --git a/weed/server/volume_server_handlers_read.go b/weed/server/volume_server_handlers_read.go
index 4208dd4fc..4a20bba38 100644
--- a/weed/server/volume_server_handlers_read.go
+++ b/weed/server/volume_server_handlers_read.go
@@ -143,7 +143,11 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request)
// glog.V(4).Infoln("read bytes", count, "error", err)
if err != nil || count < 0 {
glog.V(3).Infof("read %s isNormalVolume %v error: %v", r.URL.Path, hasVolume, err)
- w.WriteHeader(http.StatusNotFound)
+ if err == storage.ErrorNotFound || err == storage.ErrorDeleted {
+ w.WriteHeader(http.StatusNotFound)
+ } else {
+ w.WriteHeader(http.StatusInternalServerError)
+ }
return
}
if n.Cookie != cookie {
diff --git a/weed/util/http_util.go b/weed/util/http_util.go
index 00dac26f7..783ff2379 100644
--- a/weed/util/http_util.go
+++ b/weed/util/http_util.go
@@ -309,7 +309,7 @@ func ReadUrlAsStream(fileUrl string, cipherKey []byte, isContentGzipped bool, is
}
defer CloseResponse(r)
if r.StatusCode >= 400 {
- retryable = r.StatusCode >= 500
+ retryable = r.StatusCode == http.StatusNotFound || r.StatusCode >= 500
return retryable, fmt.Errorf("%s: %s", fileUrl, r.Status)
}