Create

Create

86M Downloads

Server-based crash with Forge 28.1.44

noobanidus opened this issue ยท 6 comments

commented

This crash is a little confusing to me. The actual report is here although it doesn't give a lot of information as to where the actual crash is occurring, just that something happened to prevent it loading.

Digging deeper into debug.log, I found this:

java.lang.ExceptionInInitializerError: null
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_181]
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_181]
	at net.minecraftforge.fml.AutomaticEventSubscriber.lambda$inject$3(AutomaticEventSubscriber.java:70) ~[?:?]
	at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_181]
	at net.minecraftforge.fml.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:57) ~[?:?]
	at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:141) ~[?:28.1]
	at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_181]
	at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_181]
	at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) ~[?:?]
	at net.minecraftforge.fml.ModList.lambda$null$10(ModList.java:134) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) [?:1.8.0_181]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) [?:1.8.0_181]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) [?:1.8.0_181]
	at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) [?:1.8.0_181]
	at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) [?:1.8.0_181]
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_181]
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_181]
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_181]
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_181]
Caused by: java.lang.NullPointerException
	at cpw.mods.modlauncher.TransformerClassWriter.getCommonSuperClass(TransformerClassWriter.java:102) ~[modlauncher-4.0.0.jar:?]
	at org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1209) ~[asm-6.2.jar:?]
	at org.objectweb.asm.Frame.merge(Frame.java:1293) ~[asm-6.2.jar:?]
	at org.objectweb.asm.Frame.merge(Frame.java:1175) ~[asm-6.2.jar:?]
	at org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1604) ~[asm-6.2.jar:?]
	at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1540) ~[asm-6.2.jar:?]
	at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:807) ~[asm-tree-6.2.jar:?]
	at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:687) ~[asm-tree-6.2.jar:?]
	at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:436) ~[asm-tree-6.2.jar:?]
	at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:121) ~[modlauncher-4.0.0.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:241) ~[modlauncher-4.0.0.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:128) ~[modlauncher-4.0.0.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-4.0.0.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_181]
	at com.simibubi.create.AllTileEntities.<clinit>(AllTileEntities.java:67) ~[?:mc1.14.4_v0.1.1]
	... 19 more

Which seems to be indicating that the modlauncher's getCommonSuperClass function was triggering a NullPointerException. I'm not entirely sure how that relates to Create, but it would seem that the first variable passed to getCommonSuperClass in modlauncher is null.

The rest of that NullPointerException hints that it was triggered by something in the static initialisation of your AllTileEntities class.

The process as I see it:

  • static initialisation is happening and AllTileEntities is being loaded
  • AllTileEntities does static initialisation (in the form of enum creation)
  • One of the classes that AllTileEntities is referencing is being loaded
  • The modlauncher is catching that load and is passing it out to be transformed
  • At some point in time during the transformation process, getCommonSuperClass is called with null as the first parameter.

I'm not entirely sure how to even begin debugging it outside of some sort of binary-search by deleting half the entries in AllTileEntities, etc, etc. It might even be an issue with either recent changes to Forge or a recent change to modlauncher...

commented

Very strange, indeed- I cannot reproduce this with Create alone.
Is your modpack available on Curseforge?

commented

According to cpw (author of modlauncher), it has something to do with the @EventBusSubscriber and recommends (very, very strongly) against using it and instead registering the event subscribers manually instead; the reason being is that it obfuscates the errors and makes them (his words) "night untraceable".

I don't currently have a copy of the pack available on Forge as it has a number of in-dev mods. Once I update everything to the latest version, I'll try it again & try to get you a copy.

commented

All right, I've finally managed to get a copy of the pack uploaded. It is a testing pack and it was running on a server using Java 8 (an Akliz server) when the crash happened. You can get it here (either Twitch Export or the Full Pack). You'd obviously need to use the Forge installer to get the server set-up if you wanted to test it out like that.

If there's anything else I could contribute please let me know!

commented

Hi again,
sorry if I missed it but, does the startup crash still happen from time to time?

commented

It's intermittent but it's also happening with other mods that are using the @Mod.EventBusSubscriber, so I don't precisely know what the cause is :/

commented

So, it's been another week and with repeated restarts I can comfortably say that updating to a more recent version of forge (I think we're on 28.1.79), as well as restarts every 6 hours, the server has never once failed to come up/presented with this error before, so I think it may have been an issue with Forge that had already been updated.

I'm going to close this issue; if it begins recurring again (seems unlikely), I'll comment or open another issue.