From 028d103b40090c278892652dcf3fcf3aa9c69d1c Mon Sep 17 00:00:00 2001 From: Dmitry Shmulevich Date: Fri, 17 Apr 2020 09:22:45 -0700 Subject: [PATCH 1/3] QueryFrontend sets incorrect status code on HTTP timeout Signed-off-by: Dmitry Shmulevich --- pkg/querier/frontend/frontend.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/querier/frontend/frontend.go b/pkg/querier/frontend/frontend.go index 1306646c568..e26b130bc9d 100644 --- a/pkg/querier/frontend/frontend.go +++ b/pkg/querier/frontend/frontend.go @@ -171,12 +171,16 @@ func (f *Frontend) handle(w http.ResponseWriter, r *http.Request) { return } + if _, err = io.Copy(w, resp.Body); err != nil { + server.WriteError(w, err) + return + } + hs := w.Header() for h, vs := range resp.Header { hs[h] = vs } w.WriteHeader(resp.StatusCode) - io.Copy(w, resp.Body) } func writeError(w http.ResponseWriter, err error) { From c53dc830706cc46af47a64b26706db3845093993 Mon Sep 17 00:00:00 2001 From: Dmitry Shmulevich Date: Fri, 17 Apr 2020 12:23:38 -0700 Subject: [PATCH 2/3] updated CHANGELOG Signed-off-by: Dmitry Shmulevich --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c40da47b33..4909b71f35f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ * [BUGFIX] Ring: Fixed a situation where upgrading from pre-1.0 cortex with a rolling strategy caused new 1.0 ingesters to lose their zone value in the ring until manually forced to re-register. #2404 * [BUGFIX] Distributor: `/all_user_stats` now show API and Rule Ingest Rate correctly. #2457 * [BUGFIX] Fixed `version`, `revision` and `branch` labels exported by the `cortex_build_info` metric. #2468 +* [BUGFIX] QueryFrontend: fixed a situation where HTTP error is ignored and an incorrect status code is set. #2483 ## 1.0.0 / 2020-04-02 From 4a80a1137b514d75095ec7f7dba975bb5b800cbd Mon Sep 17 00:00:00 2001 From: Dmitry Shmulevich Date: Sat, 18 Apr 2020 09:24:30 -0700 Subject: [PATCH 3/3] addressed comments Signed-off-by: Dmitry Shmulevich --- pkg/querier/frontend/frontend.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/querier/frontend/frontend.go b/pkg/querier/frontend/frontend.go index e26b130bc9d..2ea2083f974 100644 --- a/pkg/querier/frontend/frontend.go +++ b/pkg/querier/frontend/frontend.go @@ -171,16 +171,16 @@ func (f *Frontend) handle(w http.ResponseWriter, r *http.Request) { return } - if _, err = io.Copy(w, resp.Body); err != nil { - server.WriteError(w, err) - return - } - hs := w.Header() for h, vs := range resp.Header { hs[h] = vs } w.WriteHeader(resp.StatusCode) + + if _, err = io.Copy(w, resp.Body); err != nil { + server.WriteError(w, err) + return + } } func writeError(w http.ResponseWriter, err error) {