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
With every iteration in infinite voting for loop, we see a gradual increase in number of goroutines for few epochs and the count does go down after certain epochs but goes on gradual increase which can cause over usage if CPU if the node is running for a long time.
Check whether every goroutine created should be ensured that its getting closed after its execution.
Check for go routines in a for loop are handled correctly.
Check whether every channel is closed using a defer keyword.
Causes
Currently node creates separate http client instance for every API and makes request using client.Do() which creates a new goroutine on every call
Using a common http client for all the requests will help here as the new request can use the existing connections from the connection pool and there will be no need create a new connection everytime in a separate go routine.
Problem
With every iteration in infinite voting for loop, we see a gradual increase in number of goroutines for few epochs and the count does go down after certain epochs but goes on gradual increase which can cause over usage if CPU if the node is running for a long time.
Check whether every goroutine created should be ensured that its getting closed after its execution.
Check for go routines in a for loop are handled correctly.
Check whether every channel is closed using a defer keyword.
Causes
client.Do()
which creates a new goroutine on every callkeystore.Accounts()
opens a new goroutine everytime whenever we try to fetch keystore files present in keystore directory. - Fetching private key every time increases goroutine count #1195The text was updated successfully, but these errors were encountered: