-
Notifications
You must be signed in to change notification settings - Fork 7
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
Growing memory and goroutines #142
Comments
To describe this memory path, it's like this:
There are 3 So block data eh? What's the mechanism for leaking these since we can confirm it's not whole message data that we're leaking, it's specifically the My hypothesis: Graphsync is dealing with DAGs, after it gets these blocks, it stores them but also decodes them so it can traverse and transfer more of the DAG. The obvious candidate here is decoding a Graphsync could be holding on to these somewhere, I don't see an obvious place, perhaps something in the new reconciledloader (which could even be holding on to the entire block) or maybe even in the traverser which cares about For this to work, Graphsync would need to be using the So:
To get to 32G, we'd need ~65k x 500k blocks. We're only doing ~5k successful "retrievals" per hour, but that's for a root of a potentially large DAG, and that doesn't count failed but partial retrievals. Maybe those numbers could get us there? Let's find out. I'm about to submit a PR that will test this hypothesis by cloning the |
…ger memory range (#150) * fix: create a new CID from a clean slice to avoid holding on to a larger memory range Ref: #142 (comment) * Update blocks/randompruner.go Co-authored-by: Kyle Huntsman <3432646+kylehuntsman@users.noreply.github.com> Co-authored-by: Kyle Huntsman <3432646+kylehuntsman@users.noreply.github.com>
It appears the longer autoretrieve runs, the more goroutines run and the more likely autoretrieve is to crash.
I've attached goroutine dump and heap profile for the bedrock instance currently.
dumps.zip
The text was updated successfully, but these errors were encountered: