New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SDK 3.9.4: Goroutine leak in reportToRun #11805
Comments
According to this code:
We read from So basically rChan is getting consumed only once why we send to it more then once. |
Have you checked to see if that's still in main? |
Yes, it's the same code in |
@joejulian is there any plan to work on this issue soon? |
this problem had been solved according to the code in tag: v3.9.4
related issue #10439 |
No that in the upgrade release path not install release path |
@Segflow sorry, i didnot notice that you are mentioning install release path rather than upgrade release path.
according to the above code, in normal cases,
@Segflow how do you think about this? |
The issue is
Send to the channel. We have this issue in our production |
i guess the Please correct me if i am wrong. |
indeed |
Any update on this please? |
There's a PR to address this at #11978 |
During the install process there was a place where an install process could be stuck trying to write to a channel. This would happen when a context had completed prior to performInstall finishing. In a short running Helm Client this was not a problem. But, for long running applications that use Helm as an SDK there are problems where a memory leak ends up happening due to goroutines never being able to complete. This fix provides a means for performInstall to write to its channel using the method already used to fix the upgrade issue of the same kind. Fixes #11805 Signed-off-by: Matt Farina <matt.farina@suse.com> (cherry picked from commit 7c9d636)
In helm.sh/helm/v3 v3.9.4 the method
reportToRun
is implemented as follow:I have confirmed that after performing an install action (using
RunWithContext
) leads to goroutine leak.The above screenshot shows that goroutines are stuck in
reportToRun
. Here a sample stack trace of one of those routines:The block seems to be in the
chan send
call.On another note, I believe if we fall into the error path, the
i.Lock
will stay locked forever.The text was updated successfully, but these errors were encountered: