diff --git a/pkg/ingester/ingester.go b/pkg/ingester/ingester.go index c86d6f89b7..6999034a05 100644 --- a/pkg/ingester/ingester.go +++ b/pkg/ingester/ingester.go @@ -226,6 +226,8 @@ func (i *Ingester) Push(ctx old_ctx.Context, req *client.WriteRequest) (*client. return i.v2Push(ctx, req) } + defer client.ReuseSlice(req.Timeseries) + userID, err := user.ExtractOrgID(ctx) if err != nil { return nil, fmt.Errorf("no user id") @@ -248,7 +250,6 @@ func (i *Ingester) Push(ctx old_ctx.Context, req *client.WriteRequest) (*client. return nil, wrapWithUser(err, userID) } } - client.ReuseSlice(req.Timeseries) if lastPartialErr != nil { return &client.WriteResponse{}, lastPartialErr.WrapWithUser(userID).WrappedError() diff --git a/pkg/ingester/ingester_v2.go b/pkg/ingester/ingester_v2.go index 8a703ac6f2..c4129cf304 100644 --- a/pkg/ingester/ingester_v2.go +++ b/pkg/ingester/ingester_v2.go @@ -105,6 +105,8 @@ func NewV2(cfg Config, clientConfig client.Config, limits *validation.Overrides, func (i *Ingester) v2Push(ctx old_ctx.Context, req *client.WriteRequest) (*client.WriteResponse, error) { var firstPartialErr error + defer client.ReuseSlice(req.Timeseries) + userID, err := user.ExtractOrgID(ctx) if err != nil { return nil, fmt.Errorf("no user id") @@ -183,8 +185,6 @@ func (i *Ingester) v2Push(ctx old_ctx.Context, req *client.WriteRequest) (*clien i.metrics.ingestedSamples.Add(float64(succeededSamplesCount)) i.metrics.ingestedSamplesFail.Add(float64(failedSamplesCount)) - client.ReuseSlice(req.Timeseries) - if firstPartialErr != nil { return &client.WriteResponse{}, httpgrpc.Errorf(http.StatusBadRequest, wrapWithUser(firstPartialErr, userID).Error()) }