You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is probably problematic as the length of this channel is 1 and there are two places will send resultMessage to this channel. One of them will success, and the other one will block there. This won't be seem if user is using helm from command line as once that command is exited, all resources are freed including the goroutine. But when this is used by other application (in my case), this causes goroutine leak issue, and the resources (memory) associated with that cannot be released.
One information from pprof is shown below. In this case, performInstall successes to send resultMessage to channel, and handleContext is stuck there in reportToRun (where blocked by channel injection operation).
(pprof) top20 bytes
Showing nodes accounting for 63, 100% of 63 total
Showing top 20 nodes out of 50
flat flat% sum% cum cum%
........
0 0% 100% 1 1.59% helm.sh/helm/v3/pkg/action.(*Install).handleContext.func1
0 0% 100% 1 1.59% helm.sh/helm/v3/pkg/action.(*Install).reportToRun
Could you help check this issue? Maybe one potential change is to declare this channel with length of two?
Let me know if any more information is needed.
The text was updated successfully, but these errors were encountered:
This issue has been marked as stale because it has been open for 90 days with no activity. This thread will be automatically closed in 30 days if no further activity occurs.
Output of
helm version
:3.7.0
Output of
kubectl version
:I use Helm not from command line but take it as a go package and integrate it into my go based code.
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
k3s.
In "RunWithContext" method of "*Install" structure, there is following code snippet:
This is probably problematic as the length of this channel is 1 and there are two places will send resultMessage to this channel. One of them will success, and the other one will block there. This won't be seem if user is using helm from command line as once that command is exited, all resources are freed including the goroutine. But when this is used by other application (in my case), this causes goroutine leak issue, and the resources (memory) associated with that cannot be released.
One information from
pprof
is shown below. In this case,performInstall
successes to send resultMessage to channel, andhandleContext
is stuck there inreportToRun
(where blocked by channel injection operation).Could you help check this issue? Maybe one potential change is to declare this channel with length of two?
Let me know if any more information is needed.
The text was updated successfully, but these errors were encountered: