From b1060f19ad80e1b4a95245618168e35bc0056c1d Mon Sep 17 00:00:00 2001 From: Barry <122767193+BarryTong65@users.noreply.github.com> Date: Tue, 9 Jul 2024 12:05:23 +0930 Subject: [PATCH] fix: no such object error code (#1423) * fix: not found error code --- modular/gater/errors.go | 4 ++++ modular/gater/object_handler.go | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modular/gater/errors.go b/modular/gater/errors.go index dfd83615b..5a1978a4d 100644 --- a/modular/gater/errors.go +++ b/modular/gater/errors.go @@ -78,3 +78,7 @@ func ErrNotifySwapOutWithDetail(detail string) *gfsperrors.GfSpError { func ErrConsensusWithDetail(detail string) *gfsperrors.GfSpError { return gfsperrors.Register(module.GateModularName, http.StatusInternalServerError, 55001, detail) } + +func ErrConsensusNotFoundWithDetail(detail string) *gfsperrors.GfSpError { + return gfsperrors.Register(module.GateModularName, http.StatusNotFound, 55002, detail) +} diff --git a/modular/gater/object_handler.go b/modular/gater/object_handler.go index 5aebdbc67..eed9f2651 100644 --- a/modular/gater/object_handler.go +++ b/modular/gater/object_handler.go @@ -583,7 +583,11 @@ func (g *GateModular) downloadObject(w http.ResponseWriter, reqCtx *RequestConte metrics.PerfGetObjectTimeHistogram.WithLabelValues("get_object_get_object_info_time").Observe(time.Since(getObjectTime).Seconds()) if err != nil { log.CtxErrorw(reqCtx.Context(), "failed to get object info from consensus", "error", err) - err = ErrConsensusWithDetail("failed to get object info from consensus, object_name: " + reqCtx.objectName + ", bucket_name: " + reqCtx.bucketName + ", error:" + err.Error()) + if strings.Contains(err.Error(), "No such object") { + err = ErrConsensusNotFoundWithDetail("failed to get object info from consensus, the object may be deleted. object_name: " + reqCtx.objectName + ", bucket_name: " + reqCtx.bucketName + ", error:" + err.Error()) + } else { + err = ErrConsensusWithDetail("failed to get object info from consensus, object_name: " + reqCtx.objectName + ", bucket_name: " + reqCtx.bucketName + ", error:" + err.Error()) + } return err }