ForestryMC/Binnie

Crash in Incubator GUI

Opened this issue · 9 comments

When I opened Incubator GUI, game crash (Extra utilites problem in log). Without binnie no problem.
Log link https://paste.dimdev.org/vozuvusoji.mccrash
MC version - 1.12.2 Binnie version - last (196). Single player
On 188 version Binnie all good

mezz commented

Thanks for the report!

dev notes:

The crash is from this line:
https://github.com/rwtema/Extra-Utilities-2-Source/blob/9e478a1f48b559c404747c663cbb29bd8acf93d9/1.10.2/src/main/java/com/rwtema/extrautils2/items/ItemUnstableIngots.java#L192

This crash means Binnie's is modifying openContainer.inventorySlots while extra utilities is iterating over them.

What can I do with it? Reported to EU team?

mezz commented

It may be an issue on our side, it still needs more investigation to figure out.

mezz commented

Can you check with versions between 188 and 196? If you can find the first version that breaks, that will narrow down the changes we need to look at to find the issue.

dev notes:

The only place I can find where we directly modify inventory slots after the inventory is created on the server is in binnie.core.gui.minecraft.ContainerCraftGUI#createServerSlot.
It is called from a network packet that gets scheduled on the main thread, so I think it cannot be causing this crash.

Test - opened 8 Incubator GUI in my in-game genetic lab.
190 - OK
191 - OK
192 - OK
193 - OK
194 - Crash on first incubator Log https://paste.dimdev.org/wotohijova.mccrash
195 - Crash on first incubator Log https://paste.dimdev.org/letociwuya.mccrash

Looks to be the same as #534

mezz commented

Thanks for testing!
I agree, these are the same.

dev notes:

From testing I have found there is an issue in the design of the mod in singleplayer mode, where slots are added on both the client thread and on the server thread to the same container. The slots being added on the client conflict with mods that access the slots on the server thread, causing a crash.

Can i fix it without coding? Or need wait update?

mezz commented

Unfortunately this needs to be fixed in code, so you will have to wait for a fix and an update.