Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on startup with certain combinations of mods: "SubTree needs at least one child" #164

Closed
3 tasks done
magneticflux- opened this issue Jul 23, 2022 · 14 comments
Closed
3 tasks done
Labels
bug Something isn't working

Comments

@magneticflux-
Copy link

magneticflux- commented Jul 23, 2022

Describe the bug
When starting with certain mods AND without mixin.debug=true enabled the game crashes.
Stacktrace from the crash:

java.lang.ExceptionInInitializerError
	at net.minecraft.class_4599.method_22999(class_4599.java:35)
	at net.minecraft.class_156.method_654(class_156.java:444)
	at net.minecraft.class_4599.<init>(class_4599.java:13)
	at net.minecraft.class_310.<init>(class_310.java:553)
	at net.minecraft.client.main.Main.main(Main.java:198)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:423)
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:76)
	at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:24)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.multimc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104)
	at org.multimc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:175)
	at org.multimc.impl.OneSixLauncher.launch(OneSixLauncher.java:185)
	at org.multimc.EntryPoint.listen(EntryPoint.java:127)
	at org.multimc.EntryPoint.main(EntryPoint.java:57)
Caused by: java.lang.IllegalArgumentException: SubTree needs at least one child
	at net.minecraft.class_6544$class_6548.method_38157(class_6544.java:249)
	at net.minecraft.class_6544$class_6548$class_6551.<init>(class_6544.java:111)
	at net.minecraft.class_6544$class_6548.method_38148(class_6544.java:199)
	at net.minecraft.class_6544$class_6548.method_38147(class_6544.java:199)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at net.minecraft.class_6544$class_6548.method_38148(class_6544.java:199)
	at net.minecraft.class_6544$class_6548.method_38147(class_6544.java:199)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at net.minecraft.class_6544$class_6548.method_38148(class_6544.java:199)
	at net.minecraft.class_6544$class_6548.method_38153(class_6544.java:151)
	at net.minecraft.class_6544$class_6547.<init>(class_6544.java:278)
	at net.minecraft.class_4766$class_5305.method_38175(class_4766.java:112)
	at net.minecraft.class_4766$class_5305.method_39531(class_4766.java:130)
	at net.minecraft.class_4766$class_5502.method_31101(class_4766.java:92)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at net.minecraft.class_4766.method_28459(class_4766.java:42)
	at com.mojang.datafixers.util.Either$Left.mapBoth(Either.java:33)
	at com.mojang.serialization.DataResult.map(DataResult.java:110)
	at com.mojang.serialization.MapDecoder$4.decode(MapDecoder.java:94)
	at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
	at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$1(KeyDispatchCodec.java:67)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
	at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
	at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91)
	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
	at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29)
	at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
	at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$7.decode(RecordCodecBuilder.java:408)
	at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
	at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$1(KeyDispatchCodec.java:67)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.codecs.KeyDispatchCodec.lambda$decode$2(KeyDispatchCodec.java:58)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.codecs.KeyDispatchCodec.decode(KeyDispatchCodec.java:56)
	at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
	at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91)
	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
	at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29)
	at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
	at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$3.decode(RecordCodecBuilder.java:249)
	at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
	at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
	at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91)
	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
	at com.mojang.serialization.codecs.BaseMapCodec.lambda$decode$2(BaseMapCodec.java:31)
	at java.base/java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:667)
	at com.mojang.serialization.codecs.BaseMapCodec.decode(BaseMapCodec.java:27)
	at com.mojang.serialization.codecs.UnboundedMapCodec.lambda$decode$0(UnboundedMapCodec.java:38)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.codecs.UnboundedMapCodec.decode(UnboundedMapCodec.java:38)
	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
	at com.mojang.serialization.codecs.FieldDecoder.decode(FieldDecoder.java:29)
	at com.mojang.serialization.MapCodec$1.decode(MapCodec.java:34)
	at com.mojang.serialization.codecs.RecordCodecBuilder$Instance$1.decode(RecordCodecBuilder.java:183)
	at com.mojang.serialization.codecs.RecordCodecBuilder$2.decode(RecordCodecBuilder.java:107)
	at com.mojang.serialization.MapDecoder.lambda$compressedDecode$0(MapDecoder.java:52)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at com.mojang.serialization.MapDecoder.compressedDecode(MapDecoder.java:52)
	at com.mojang.serialization.MapCodec$MapCodecCodec.decode(MapCodec.java:91)
	at com.mojang.serialization.Decoder$1.decode(Decoder.java:49)
	at com.mojang.serialization.Codec$2.decode(Codec.java:71)
	at com.mojang.serialization.Decoder.parse(Decoder.java:18)
	at net.minecraft.class_5506$class_5507$class_6821.method_42091(class_5506.java:113)
	at net.minecraft.class_6900.method_42082(class_6900.java:69)
	at net.minecraft.class_6900.method_40407(class_6900.java:36)
	at com.mojang.serialization.DataResult.lambda$flatMap$10(DataResult.java:138)
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38)
	at com.mojang.serialization.DataResult.flatMap(DataResult.java:136)
	at net.minecraft.class_6900.method_40404(class_6900.java:36)
	at net.minecraft.class_6900$class_6901.method_40409(class_6900.java:94)
	at net.minecraft.class_5455.method_30526(class_5455.java:297)
	at net.minecraft.class_5455.method_30519(class_5455.java:292)
	at net.minecraft.class_6903.method_40413(class_6903.java:32)
	at net.minecraft.class_5455.method_40314(class_5455.java:269)
	at net.minecraft.class_5455.method_40327(class_5455.java:287)
	at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:183)
	at net.minecraft.class_1088.<clinit>(class_1088.java:158)
	... 21 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at net.minecraft.class_4599.method_22999(class_4599.java:35)
	at net.minecraft.class_156.method_654(class_156.java:444)
	at net.minecraft.class_4599.<init>(class_4599.java:13)
	at net.minecraft.class_310.<init>(class_310.java:553)

Full log from the crash: latest.log

Checklist

  • I am using the official version of the mod.
  • I tried the latest development version but the issue persists.
  • I searched for similar open issues and could not find an existing bug report on this.
@magneticflux- magneticflux- added the bug Something isn't working label Jul 23, 2022
@ishland
Copy link
Collaborator

ishland commented Jul 23, 2022

Can you try reproduce this on fabric-loader instead of quilt-loader?

@ishland ishland added the status: more info needed Further information is requested label Jul 23, 2022
@magneticflux-
Copy link
Author

Yep, and with the latest dev build: latest.log

@magneticflux-
Copy link
Author

Now it also crashes when passing -Dmixin.debug=true: latest.log

@magneticflux- magneticflux- changed the title Crash on startup with certain combinations of mods and Mixin settings Crash on startup with certain combinations of mods Jul 23, 2022
@ishland ishland removed the status: more info needed Further information is requested label Jul 23, 2022
@magneticflux-
Copy link
Author

It isn't only Colormatic that causes the issue either, I just tried with Inspectio, Mouse Wheelie, and Screenshot to Clipboard.

@magneticflux-
Copy link
Author

magneticflux- commented Jul 23, 2022

Disabling MixinMultiNoiseBiomeSourcePreset seems to fix it. Maybe a threading or mod load order issue?
It does not fix it, the crash happened 6/10 times when testing this build.

@ishland
Copy link
Collaborator

ishland commented Jul 23, 2022

This is pretty weird as I can have Colormatic 3.1.2+mc.1.19 and c2me 0.2.0+alpha.8.16 without issues.

image
image

@ishland
Copy link
Collaborator

ishland commented Jul 23, 2022

I would suggest trying a normal HotSpot VM instead of GraalVM EE.

@magneticflux-
Copy link
Author

I tried it on Eclipse Temurin and it still crashes a little over 50% of the time.

@magneticflux- magneticflux- changed the title Crash on startup with certain combinations of mods Crash on startup with certain combinations of mods: "SubTree needs at least one child" Jul 23, 2022
@ishland
Copy link
Collaborator

ishland commented Jul 23, 2022

Can you try on a clean minecraft instance? I can get minecraft starting up completely fine 8 times in a row.

@magneticflux-
Copy link
Author

It was GraalVM, I thought I switched to Temurin but it was still using the old JDK. I can reproduce it in a dev environment now and I'm stepping through in the debugger now.

@ishland
Copy link
Collaborator

ishland commented Jul 23, 2022

I can reproduce it in a dev environment now and I'm stepping through in the debugger now.

I think just don't waste time stepping through init code. Debuggers will disable optimizations and once you stepped through the whole thing it will launch just fine.

@ishland
Copy link
Collaborator

ishland commented Jul 25, 2022

Closing since this is a GraalVM EE specific issue.

@ishland ishland closed this as not planned Won't fix, can't repro, duplicate, stale Jul 25, 2022
@magneticflux-
Copy link
Author

Can reproduce on a full vanilla instance during worldgen; not a C2ME issue.

@HyperSoop
Copy link

I can confirm this is a Graal issue. Had this lots of times. Usually solved by trying again (it has like a 40% chance to appear) or not using EE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants