fengberlin opened a new issue #698:
URL: https://github.com/apache/rocketmq-client-go/issues/698


   In the latest release `rocketmq-client-go` sdk (version 
[2.1.0](https://github.com/apache/rocketmq-client-go/releases/tag/v2.1.0), the 
`cancel` function is not be called, this will cause memory/resources leak.
   
   e.g. in the producer.go, line 
[#244](https://github.com/apache/rocketmq-client-go/blob/2bdc662c91c92aa0f68a90f1db5a3c4b6e677db0/producer/producer.go#L244)
 :
   > ctx, _ = context.WithTimeout(ctx, 3*time.Second)
   
   According to the go doc:
   > WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
   > Canceling this context releases resources associated with it, so code 
should
   > call cancel as soon as the operations running in this Context complete:
   
   ```
   func slowOperationWithTimeout(ctx context.Context) (Result, error) {
        ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
        defer cancel()  // releases resources if slowOperation completes before 
timeout elapses
        return slowOperation(ctx)
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to