-
Notifications
You must be signed in to change notification settings - Fork 12
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
Memory leak #50
Comments
Nice find! Looks like it's time to go digging around in here. /cc. @fernandes |
Not 100% sure, but I think I found it here c2e500b It turns out that the hash just kept growing and growing. Though, I'd imagine Crystal would be pretty efficient on super large Hashes, it's the only thing I found that was sticking around longer than it needed to. |
@jwoertink Nice find! I tried my branch that I used to discover it and sure enough, it was leaking hashes there. But that wasn't the only leak there was. I still saw memory growth with each WebSocket connection made. I managed to trace it even deeper and what I found wasn't even in the WebSocket handler code — it was, surprisingly, in the |
uow, these changes are really great! thanks @jgaskins for jumping into it.. #51 is great fixing the websocket pinger, and c2e500b helps with the hashes. Merging 51 and cherry picking the commit above into master would make it really strong (specially given @jgaskins comments on the tests performed) TL;DR let's merge the PR and cheery pick c2e500b ? 😎 |
After @jwoertink posted jgaskins/redis#33 I did some investigating and managed to narrow it down to Cable, replicable on the
master
branch. The code I used is here (diff).Reproduction:
crystal run examples/app.cr
htop
during this and watch it go upcurl
orwrk
won't do the trick (AFAIK) because the repro requires WebSockets, so these need to be actual page loadsThe text was updated successfully, but these errors were encountered: