DimensionalDevelopment / JustEnoughIDs

Use the 1.13 chunk format in 1.12 to remove the block, item, and biome ID limits
MIT License
31 stars 33 forks source link

Race condition freezing class loading causing server hang #102

Open gabizou opened 4 years ago

gabizou commented 4 years ago

Just stumbling across this from a user report, but it appears that this line is causing a deadlock in early stages of the game's load time.

The provided log: https://gist.github.com/gabizou/c602c34407d3f2641f22a931614d5cfc#file-gistfile1-txt-L12

points to a Stream operation being executed, and that operation shows up in two individual threads, here and here.

Upon further investigation, I'm questioning why someone would decide it's best to try and parallelize method lookups during class transformation... What do you gain out of it?

ZombieHDGaming commented 4 years ago

I'll be perfectly honest, Zabi was nice enough to help me with that when it came to the potion extension since I'm not as talented with Mixins yet, so he helped me do it in pure ASM. I'll see about making it so it's not done in parallel and see if that possibly stops it (Idk how to test it, I've never personally seen the issue), or even better, port the potion extensions to pure Mixins finally since maybe Mixins 0.8 might help that more

zabi94 commented 4 years ago

Yeah, that was a derp on my part, I was experimenting with streams and that bit got left behind. That also explains one old bug I had on my standalone patch

clienthax commented 4 years ago

I can confirm making it a standard stream resolves the hang on my setup (I was the one with the stack dump)