Skip to content

Commit add279f

Browse files
owen-dpracucci
authored andcommitted
defers putting slice back into pool on ingester push to prevent panicking Error() calls which reference underlying labels (#2000)
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>
1 parent 8355623 commit add279f

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

pkg/ingester/ingester.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ func (i *Ingester) Push(ctx old_ctx.Context, req *client.WriteRequest) (*client.
226226
return i.v2Push(ctx, req)
227227
}
228228

229+
defer client.ReuseSlice(req.Timeseries)
230+
229231
userID, err := user.ExtractOrgID(ctx)
230232
if err != nil {
231233
return nil, fmt.Errorf("no user id")
@@ -248,7 +250,6 @@ func (i *Ingester) Push(ctx old_ctx.Context, req *client.WriteRequest) (*client.
248250
return nil, wrapWithUser(err, userID)
249251
}
250252
}
251-
client.ReuseSlice(req.Timeseries)
252253

253254
if lastPartialErr != nil {
254255
return &client.WriteResponse{}, lastPartialErr.WrapWithUser(userID).WrappedError()

pkg/ingester/ingester_v2.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ func NewV2(cfg Config, clientConfig client.Config, limits *validation.Overrides,
105105
func (i *Ingester) v2Push(ctx old_ctx.Context, req *client.WriteRequest) (*client.WriteResponse, error) {
106106
var firstPartialErr error
107107

108+
defer client.ReuseSlice(req.Timeseries)
109+
108110
userID, err := user.ExtractOrgID(ctx)
109111
if err != nil {
110112
return nil, fmt.Errorf("no user id")
@@ -183,8 +185,6 @@ func (i *Ingester) v2Push(ctx old_ctx.Context, req *client.WriteRequest) (*clien
183185
i.metrics.ingestedSamples.Add(float64(succeededSamplesCount))
184186
i.metrics.ingestedSamplesFail.Add(float64(failedSamplesCount))
185187

186-
client.ReuseSlice(req.Timeseries)
187-
188188
if firstPartialErr != nil {
189189
return &client.WriteResponse{}, httpgrpc.Errorf(http.StatusBadRequest, wrapWithUser(firstPartialErr, userID).Error())
190190
}

0 commit comments

Comments
 (0)