Ender IO Zoo

Ender IO Zoo

961k Downloads

Odd crash, can't pinpoint why

nzminecraftDOTcom opened this issue · 16 comments

commented

Issue Description:

Modpack however I just want more information on what this error is, it constantly happens at totally random intervals.

What happens:

Server randomly just stops, see crash report pastebin link.
https://pastebin.com/Xb5zHSbY

What you expected to happen:

No clue, don't even know what this error is, it doesn't point to anything directly.

Steps to reproduce:

Been unable to reproduce this, it's totally random as far as I'm aware.


Affected Versions (Do not use "latest"):

  • EnderIO: 5.0.29
  • EnderCore: 1.12.2-0.5.35
  • Minecraft: 1.12.2
  • Forge: 8.0.99.99

Your most recent log file where the issue was present:

https://pastebin.com/Xb5zHSbY

commented

I don't think OP is worried about it breaking his server, he's just asking what is causing it within the EnderIO mod. " I just want more information on what this error is." He's not asking you to fix it, just asking what it is.

commented

It brakes my server with it installed, aka it stops it.

However I am not afraid of it breaking my server as I know it won't do that.
I don't want to know the results of removing spongeforge, i want to know what the crash report is saying, this part here.

java.lang.NullPointerException: Exception in server tick loop
at crazypants.enderio.base.capability.ItemTools.getInsertLimit(ItemTools.java:237)
at crazypants.enderio.conduits.conduit.item.NetworkedInventory.insertItem(NetworkedInventory.java:262)
at crazypants.enderio.conduits.conduit.item.NetworkedInventory.insertIntoTargets(NetworkedInventory.java:232)
at crazypants.enderio.conduits.conduit.item.NetworkedInventory.doTransfer(NetworkedInventory.java:196)
at crazypants.enderio.conduits.conduit.item.NetworkedInventory.transferItems(NetworkedInventory.java:186)
at crazypants.enderio.conduits.conduit.item.NetworkedInventory.onTick(NetworkedInventory.java:127)
at crazypants.enderio.conduits.conduit.item.ItemConduitNetwork.tickEnd(ItemConduitNetwork.java:201)
at crazypants.enderio.base.handler.ServerTickHandler.onServerTick(ServerTickHandler.java:56)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_315_ServerTickHandler_onServerTick_ServerTickEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:662)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:597)
at net.minecraftforge.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:265)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:712)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Unknown Source)

No mention what so ever of spongeforge

commented

he can't, because sponge modifys how the calls are handled, resulting in different from normal execution chains ... something modifys an object along the way of the call and the call

crazypants.enderio.base.capability.ItemTools.getInsertLimit(ItemTools.java:237)

runs into an nullpointer, which means a missing information (hence the expectation of normal forge to never fail at this point and never deliver a null)

to understand WHAT EXACTLY is going wrong, one would have to setup a complete dev environment with deobfuscated code, let the whole server run in debug mode and catch this exact exception and trace back the modified data to find out where and when the object got modified illegally

this in turn would require all code in deobfuscated state, a dev environment fully loaded with sponge and everything configured exactly the same and a lot of time to reproduce this actual issue

are you ready to invest a week or two each afternoon until deep in the night sitting down with him in attempt to make it reproducible and debugging it down just to know what sponge is doing wrong or maybe another mod even?

there is no positive return in investing this much time just to proove somebody else wrong
it is enough to say "it is not my fault, bug the next relevant dev to fix it as it is not my problem"

you should never forget the devs mostly maintain the mods in their free time, the same time when you play with their mods they are sitting on bugs and new stuff to implement for you. you should thank in every minute of gameplay the devs of the mods for spending hours of their "playtime" to give you this minute of enjoyable gameplay

commented
commented

Thank you, mindforger. The first 4 lines are exactly the answer I was looking for. I have just now noticed the server crashes on the hour every hour at the exact same time. I have disabled one of the mods I am aware of that "runs" on the hour every hour. Will post back here if it solves the issue. Thanks for your help.

commented

okay i must admit, from a standpoint where you read those trace-lines very often one could say "the crash report tells it clearly, so why do you bug me"

sometimes it is clearly a misunderstanding because of the perspective :P

commented

Remove sponge forge and try again.

commented

That's not really the answer I was after, i was more after a reason as to what is causing it. I'm not removing sponge forge as it's how all the backend server stuff is handelled.

commented

If you are worried it could brake your server than made a copy without sponge or make a backup before trying. That easy.

commented

So SpongeForge devs are telling us a problem on your end, and you guys are telling us its on the SpongeForge end. SpongePowered/SpongeForge#2344
Any chance you guys can work together to solve this problem?

commented

@theBluebaerry as you just linked an issue related to this, this might work out :D

commented

It's the same thing. I posted it on spongeforges GitHub page to see if they had any input

commented

Fantastic mindforger! Thanks for being so helpful to us :)

commented

cc'ed:

Lol, in all this back and forth about diagnosing, I completely forgot what the crash was about. ;)

Ok, back to the subject: What happens here is that a neighboring block suddenly doesn't have an inventory anymore. Usually when a block changes, the conduit gets notified and removes the connection to that block. However, with the new Forge Capabilities blocks can gain/lose inventories without having to notify their neighbors. I suspect this is happening here. The original guess was that the neighbor block was removed/replaced without a block change notification being fired, which would be something SpongeForge could be responsible for.

I added a ton of additional checks lately. They were not needed in Minecraft 1.7.10 (i.e. before there were Capabilities) as blocks couldn't change having an inventory or not. So if there was an inventory in a neighbor, it would stay there as long as the block wasn't removed.

commented

Woo. Will be looking forward to the update that patches this. Thank you 100 times over!

commented

Thanks so much! Glad we could all sort it out :)