Concurrency crash on startup
NielsPilgaard opened this issue · 7 comments
Relayed from mekanism/Mekanism#7827 & EnigmaticaModpacks/Enigmatica9#530
Most relevant section:
I think the error occurs as a result of a mod injecting a modlauncher plugin service during mod construction. FML invokes mod constructors in parallel, and if the mod injects the plugin while modlauncher is preparing to transform another class, a CME is thrown.
After a github search, I found a mod that perfectly matches this scenario and also happens to be installed in your instance: Create: Steam 'n' Rails. See their injection code here. Advice for Steam n Rails maintainers: please perform injection in a transformation service or mixin plugin, before the transformable layer is even created. CC @techno-sam @IThundxr
Do you have a rough estimate on when you'll be releasing 1.4.4? The next update of Enigmatica 9 is dependant on it :)
Do you have a rough estimate on when you'll be releasing 1.4.4? The next update of Enigmatica 9 is dependant on it :)
So this depends on whenever create fabric releases but.... for create fabric to release (which is ready) it needs a Quilt Fabric API update that includes the new model api but thats blocked by 2 PRs but hopefully soonish that should be done
if you really need forge releases you can get them off the maven over here but these are untested and could have bugs etc
So after looking at the actual transformer code, I see you only transform a single class. Therefore there is no need for a launch plugin or injection hacks at all.
The easiest way to do this is without dealing with Forge JS coremods is to register a mixin config plugin, and then applying the transformation in either preApply
or postApply
. These plugin methods are wired up from mixin's launch service so the provided ClassNode
will be exactly the same, no need to worry about having to adjust the transformer code.
Thanks for the info!
Does the mixin config plugin fire preApply
/postApply
even if no mixins target the relevant class?