diff options
| author | Lisandro Pin <lisandro.pin@proton.ch> | 2025-08-14 15:35:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-14 06:35:55 -0700 |
| commit | 18a22177b97e59558959223495ac11ed45cf654a (patch) | |
| tree | af1d0e4ae10d3e3159bcf67244e3a0d5b63cc18c | |
| parent | 3729e9ba257fd365aa96aac90fb4a97d69ac69b2 (diff) | |
| download | seaweedfs-18a22177b97e59558959223495ac11ed45cf654a.tar.xz seaweedfs-18a22177b97e59558959223495ac11ed45cf654a.zip | |
Fix volume server's status code returned for missing needles on EC-encoded shards (#7137)
| -rw-r--r-- | weed/server/volume_server_handlers_read.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/weed/server/volume_server_handlers_read.go b/weed/server/volume_server_handlers_read.go index 9860d6e9e..a12b1aeb2 100644 --- a/weed/server/volume_server_handlers_read.go +++ b/weed/server/volume_server_handlers_read.go @@ -6,8 +6,6 @@ import ( "encoding/json" "errors" "fmt" - util_http "github.com/seaweedfs/seaweedfs/weed/util/http" - "github.com/seaweedfs/seaweedfs/weed/util/mem" "io" "mime" "net/http" @@ -18,12 +16,16 @@ import ( "sync/atomic" "time" + util_http "github.com/seaweedfs/seaweedfs/weed/util/http" + "github.com/seaweedfs/seaweedfs/weed/util/mem" + "github.com/seaweedfs/seaweedfs/weed/filer" "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/images" "github.com/seaweedfs/seaweedfs/weed/operation" "github.com/seaweedfs/seaweedfs/weed/stats" "github.com/seaweedfs/seaweedfs/weed/storage" + "github.com/seaweedfs/seaweedfs/weed/storage/erasure_coding" "github.com/seaweedfs/seaweedfs/weed/storage/needle" "github.com/seaweedfs/seaweedfs/weed/storage/types" "github.com/seaweedfs/seaweedfs/weed/util" @@ -197,7 +199,7 @@ 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) - if err == storage.ErrorNotFound || err == storage.ErrorDeleted { + if err == storage.ErrorNotFound || err == storage.ErrorDeleted || errors.Is(err, erasure_coding.NotFoundError) { NotFound(w) } else { InternalError(w) |
