From 796c18a6abd548c7c8a14639d5aa34ac48229cdd Mon Sep 17 00:00:00 2001 From: stonezdj Date: Mon, 8 Jul 2024 16:01:20 +0800 Subject: [PATCH] Update proxy cache to serve the image in local when it is removed in upstream Add stacktrace in debug log Signed-off-by: stonezdj --- src/controller/proxy/controller.go | 4 ++-- src/lib/http/error.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controller/proxy/controller.go b/src/controller/proxy/controller.go index 38d55397c..659d3a5d0 100644 --- a/src/controller/proxy/controller.go +++ b/src/controller/proxy/controller.go @@ -172,9 +172,9 @@ func (c *controller) UseLocalManifest(ctx context.Context, art lib.ArtifactInfo, return false, nil, err } if !exist || desc == nil { - return false, nil, errors.NotFoundError(fmt.Errorf("repo %v, tag %v not found", art.Repository, art.Tag)) + log.Warningf("repo %v, tag %v not found in remote, fallback to local", art.Repository, art.Tag) + return true, nil, nil } - var content []byte var contentType string if c.cache == nil { diff --git a/src/lib/http/error.go b/src/lib/http/error.go index c3abd94ba..5480eec70 100644 --- a/src/lib/http/error.go +++ b/src/lib/http/error.go @@ -59,7 +59,7 @@ func SendError(w http.ResponseWriter, err error) { errPayload = errors.NewErrs(err).Error() } else { // only log the error whose status code < 500 when debugging to avoid log flooding - log.Debug(errPayload) + log.Debugf("%s %s", errPayload, stackTrace) } w.WriteHeader(statusCode) fmt.Fprintln(w, errPayload)