Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
runtime: being unable to allocate across scavenged and unscavenged memory leads to fragmentation blow-up in some cases #35848
What version of Go are you using (
@savalin FWIW, I can't reproduce this at tip.
The reason this decision was made in the first place was to accommodate the more aggressive mechanism for returning memory to the OS in Go 1.13 (#30333). The decision was deemed a good idea because jemalloc and other allocators follow a similar rule for returning memory to the OS. It seems like for whatever reason this decision is causing fragmentation which really hurts this application.
Anyway, it shouldn't matter for future releases. This bug is effectively fixed for the Go 1.14 release. Please give the tip of the master branch a try and see if you get the same results.
Finally, this made me realize that
CC @aclements, since this is the first consequence we're seeing of that original decision.
Please continue reading if you'd like to see some additional notes I wrote while sussing this out.
@savalin My mistake. This doesn't reproduce at tip as long as you put a