From 2ec8a7e34f1e0944ed199ed85f3de8b389b6000d Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Fri, 16 Oct 2020 18:01:09 +0100 Subject: [PATCH] When handling errors in storageHandler check underlying error Unfortunately there was a mistake in #13164 which fails to handle os.PathError wrapping an os.ErrNotExist Signed-off-by: Andrew Thornton --- modules/storage/minio.go | 2 +- routers/routes/routes.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/storage/minio.go b/modules/storage/minio.go index 4a2819de5ef37..0e0cb3690da64 100644 --- a/modules/storage/minio.go +++ b/modules/storage/minio.go @@ -32,7 +32,7 @@ type minioObject struct { func (m *minioObject) Stat() (os.FileInfo, error) { oi, err := m.Object.Stat() if err != nil { - return nil, err + return nil, convertMinioErr(err) } return &minioFileInfo{oi}, nil diff --git a/routers/routes/routes.go b/routers/routes/routes.go index adda919857630..9f7ff277cf0d4 100644 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -7,6 +7,7 @@ package routes import ( "bytes" "encoding/gob" + "errors" "fmt" "io" "net/http" @@ -127,7 +128,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor rPath := strings.TrimPrefix(req.RequestURI, "/"+prefix) u, err := objStore.URL(rPath, path.Base(rPath)) if err != nil { - if err == os.ErrNotExist { + if os.IsNotExist(err) || errors.Is(err, os.ErrNotExist) { log.Warn("Unable to find %s %s", prefix, rPath) ctx.Error(404, "file not found") return @@ -160,7 +161,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor //If we have matched and access to release or issue fr, err := objStore.Open(rPath) if err != nil { - if err == os.ErrNotExist { + if os.IsNotExist(err) || errors.Is(err, os.ErrNotExist) { log.Warn("Unable to find %s %s", prefix, rPath) ctx.Error(404, "file not found") return