IIRC, Reika doesn't know exactly why it happens, but running the client using the G1 garbage collector instead of the more common Concurrent Mark Sweep garbage collector fixes the crash. Starting in v10, I think Chromaticraft is going to start forcing a crash if the client isn't using the appropriate garbage collector on launch. So, kind of fixed, in a way.
Oh, I really hope not.
First, I have never been able to get G1GC to run without consuming all the memory that it might use (it goes to maximum allocation very quickly).
Second, I have never been able to get G1GC to NOT run if it doesn't have to.
CMS will only run when memory gets used, and it doesn't allocate more than it needs to. That it never frees memory up after grabbing it is a minor matter, given the constant leak in modded minecraft.
But G1GC ... I expected (after reading about it) that there would be some way to say "Only run when you are low on memory or have known blocks with lots of garbage". Instead, it runs even if there's nothing happening (or at least, I was never able to find a configuration that would not).
For example, a server with no one on will settle down into a very occasional CMS small collection every hour or so (and gets there faster with SuspendedServer to disable almost everything when no one is on).
So, if anyone has managed to figure out how to configure G1GC to:
1. Not run constantly,
2. Not consume the worst-case memory usage all the time,
3. Have pause times low enough that there is no "sudden non-responsiveness" of the old throughput collector (the older J7 default collector)
PLEASE, tell me. I never figured it out.