Browse Source

filer: retryable when error is not found

pull/3472/head
chrislu 2 years ago
parent
commit
aac45f3e89
  1. 6
      weed/server/volume_server_handlers_read.go
  2. 2
      weed/util/http_util.go

6
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 {

2
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)
}

Loading…
Cancel
Save