TerminatorNL / LagGoggles

A minecraft forge mod which visualises lag in the world
GNU General Public License v3.0
54 stars 20 forks source link

1.12.2 Crash #125

Closed Based199 closed 4 years ago

Based199 commented 4 years ago

I thought it was ender up at fault but they say it's you:

https://github.com/SleepyTrousers/EnderIO/issues/5437#issuecomment-695812201

TerminatorNL commented 4 years ago

Please note this part:

    at com.enderio.core.common.TileEntityBase.TickCentral_TrueITickableUpdate(TileEntityBase.java:42)
    at com.github.terminatornl.tickcentral.api.TickHub.trueUpdate(TickHub.java:48)
    at com.github.terminatornl.laggoggles.Main.redirectUpdate(Main.java:91)
    at com.enderio.core.common.TileEntityBase.update(TileEntityBase.java)

The snippet above tells you that ender io initiates an update, LagGoggles wraps around to allow for timing of the function being called. LagGoggles in com does not alter ticking behavior like Tiquality does. I am sad to inform you that ender IO authors will have to re-diagnose this issue.

I suggest removing LagGoggles all togheter and wait for this bug to occur again, because it is definitely not LagGoggles

HenryLoenwind commented 4 years ago

BTW, may I direct you attention to this bit of code in World:

image

That update call already is wrapped in not one but two profilers. And you ASM in a third. It would be much simpler---and much less invasive---to assign your profiler to TimeTracker.TILE_ENTITY_UPDATE...

TerminatorNL commented 4 years ago

I was not aware forge added a time tracker. This could potentially be a very nice alternative to ASM transforming indeed. Please keep in mind my previous comment still stands, functionality wise.

HenryLoenwind commented 4 years ago

About the original issue: I usually don't trace stack traces through other mods' code but determine the state we are called in (world crashes when asked for TileEntity by itself) and hand over to the caller. I have no idea why World would crash when a TileEntity asks for itself by coordinates. And I don't really have an idea how to protect against that---the code that crashes already is the protection against unexpected weird world states:

image

Honsal commented 4 years ago

Hi. I had same issue, but THIS kind of issue, can be fixed with setting World.ITickable.Override to true in asm config file. At least, I was fixed it like this way.

However, this kind of issue(TerminatorNL/TickCentral/issues/13) was not fixed.

But in comment of that issue, @TerminatorNL uploaded an new TickCentral3.1 archive. I am using that and no probmel occurs on client.

Server is not yet tested, but I think it will be OK.

--- MODIFIED ---

It SEEMS like working, but actually no enderio machines are ticking.

Waiting for updates