4

prevents a goroutine from being leaked if a timeout occurs when calling forceClo...

 2 years ago
source link: https://github.com/aws/amazon-ecs-agent/pull/2854
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Copy link

Contributor

hex0punk commented on Apr 27

edited by sparrc

Summary

Fixes potential edge case which could result in a goroutine leak, applies general best practice for working with channels.

A goroutine leak could occur in the following edge case scenario:

In the case that the case in https://github.com/aws/amazon-ecs-agent/blob/master/agent/wsclient/client.go#L274-L285 executes first, the function will return and the anonymous goroutine in https://github.com/aws/amazon-ecs-agent/blob/master/agent/wsclient/client.go#L269 would continue to be blocked, causing a goroutine leak. Using a buffered channel prevents this issue.

Implementation details

Made an unbuffered channel into a buffered channel

Testing

New tests cover the changes: no

Description for the changelog

bugfix - fix potential goroutine leak when closing websocket connections

Licensing

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK