@@ -22,7 +22,6 @@ import (
22
22
"github.com/weaveworks/common/httpgrpc/server"
23
23
"google.golang.org/grpc/status"
24
24
25
- "github.com/cortexproject/cortex/pkg/ingester/client"
26
25
querier_stats "github.com/cortexproject/cortex/pkg/querier/stats"
27
26
"github.com/cortexproject/cortex/pkg/querier/tripperware"
28
27
"github.com/cortexproject/cortex/pkg/tenant"
@@ -143,22 +142,15 @@ func (f *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
143
142
r .Body = io .NopCloser (io .TeeReader (r .Body , & buf ))
144
143
// We parse form here so that we can use buf as body, in order to
145
144
// prevent https://github.com/cortexproject/cortex/issues/5201.
146
- if strings .Contains (r .URL .Path , "api/v1/read" ) {
147
- var req client.ReadRequest
148
- if err := util .ParseProtoReader (r .Context (), r .Body , int (r .ContentLength ), maxRemoteReadQuerySize , & req , util .RawSnappy ); err != nil {
149
- level .Error (util_log .WithContext (r .Context (), f .log )).Log ("msg" , "failed to parse proto" , "err" , err .Error ())
150
- http .Error (w , err .Error (), http .StatusBadRequest )
151
- return
152
- }
153
- } else {
145
+ // Exclude remote read here as we don't have to buffer its body.
146
+ if ! strings .Contains (r .URL .Path , "api/v1/read" ) {
154
147
if err := r .ParseForm (); err != nil {
155
148
writeError (w , err )
156
149
return
157
150
}
151
+ r .Body = io .NopCloser (& buf )
158
152
}
159
153
160
- r .Body = io .NopCloser (& buf )
161
-
162
154
startTime := time .Now ()
163
155
resp , err := f .roundTripper .RoundTrip (r )
164
156
queryResponseTime := time .Since (startTime )
0 commit comments