From 303ce8e42ccb1c69b15d01ad871701c447b631b6 Mon Sep 17 00:00:00 2001 From: blotus Date: Fri, 10 Jan 2025 16:00:24 +0100 Subject: [PATCH] gin: do not use gin context after returning response (#3398) --- pkg/apiserver/controllers/v1/decisions.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/apiserver/controllers/v1/decisions.go b/pkg/apiserver/controllers/v1/decisions.go index ffefffc226b..6a316d8a2e4 100644 --- a/pkg/apiserver/controllers/v1/decisions.go +++ b/pkg/apiserver/controllers/v1/decisions.go @@ -394,8 +394,6 @@ func (c *Controller) StreamDecisionNonChunked(gctx *gin.Context, bouncerInfo *en func (c *Controller) StreamDecision(gctx *gin.Context) { var err error - ctx := gctx.Request.Context() - streamStartTime := time.Now().UTC() bouncerInfo, err := getBouncerFromContext(gctx) @@ -426,7 +424,8 @@ func (c *Controller) StreamDecision(gctx *gin.Context) { if err == nil { // Only update the last pull time if no error occurred when sending the decisions to avoid missing decisions - if err := c.DBClient.UpdateBouncerLastPull(ctx, streamStartTime, bouncerInfo.ID); err != nil { + // Do not reuse the context provided by gin because we already have sent the response to the client, so there's a chance for it to already be canceled + if err := c.DBClient.UpdateBouncerLastPull(context.Background(), streamStartTime, bouncerInfo.ID); err != nil { log.Errorf("unable to update bouncer '%s' pull: %v", bouncerInfo.Name, err) } }