buildkite / lifecycled

A daemon for responding to AWS AutoScaling Lifecycle Hooks
MIT License
146 stars 34 forks source link

Move SpotListener newTicker out of the infinite loop #72

Closed mlehner616 closed 5 years ago

mlehner616 commented 5 years ago

Regarding #71

I'm not 100% certain this isn't a red herring. I have to wait for some amount of time see if the leak goes away on my side. pprof didn't show anything hugely out of the ordinary but I could have missed something.

This looks like it was creating a NewTicker on each iteration of the for loop without cleaning it up resulting in a slow increase of CPU churn over time. Moving the NewTicker outside of the loop and setting the case to strike only when the single instance of tockChan signals should help alleviate growth.

lox commented 5 years ago

Thanks @mlehner616, I'd be super surprised if this was the cause, but let's fix it anyway. Appreciate you digging into it. @itsdalmo any other ideas?