-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
Quality / Stability / Reliability
-
False
-
-
False
-
-
-
File: fleetshard/pkg/central/cloudprovider/awsclient/rds.go#L392-L400
waitForInstanceToBeAvailable polls AWS RDS in a for loop. On every iteration it calls time.NewTicker(...) but never calls ticker.Stop(). Each ticker allocates an internal goroutine and channel that cannot be GC'd until the ticker fires. During a normal RDS provisioning wait of ~10 minutes (with awsRetrySeconds = 30), roughly 20 leaked ticker goroutines accumulate before the earliest ones fire and are cleaned up.
Network amplification: If network issues slow the AWS API without causing errors (e.g. internal SDK retries), the loop runs longer and more tickers accumulate. Outright errors exit the function cleanly.
Fix: Move the ticker outside the loop with defer ticker.Stop(), or replace with time.After for one-shot delays.