Jump to content

Need help tracking down an elusive NPE


Jinks Bot

Recommended Posts

Since a few versions the client in a multiplayer game is throwing repeated NPEs during light updates.

I could not track it down to a specific mod yet, but two occasions where I can reliably reproduce it are turning on a Modular Router (when the lasers show, the NPE pops up) or putting lava into a Dimensional Storage tank. There are more occasions though that are not as easy to track down.

Another occasion was to do with a Create gearbox. Removing that one gearbox (out of 7) stopped the NPEs from happening in that area, all the other ones had no impact.

I've already tried disabling client mods having specifically to do with rendering or with light, but with no success so far. (And before anyone asks, it's not Java 18. I did a test run with Java 17 and the error is identical.)

A full log is at https://mclo.gs/I4QMjFH - with the offending error here, beginning with

[06:15:36] [Render thread/ERROR] [minecraft/BlockableEventLoop]: Error executing task on Client java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.block.state.BlockState.m_60734_()" because "p_46606_" is null

After a while I don't get a fill stack trace any more, just

[05:20:50] [Render thread/ERROR] [minecraft/BlockableEventLoop]: Error executing task on Client java.lang.NullPointerException: null

This then happens over and over again, about twice per second until I leave the area.

Searching the internet for `"net.minecraft.world.level.block.state.BlockState.m_60734_()"` nets very few results.

Right now I'm mainly concerned with tracking down the offending mod in the first place.

Edited by Jinks Bot
Link to comment
Share on other sites

  • Jinks Bot changed the title to Need help tracking down an elusive NPE
Quote

{re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:enhancedcelestials.mixins.json:MixinWorld,pl:mixin:APP:framedblocks.mixin.json:MixinLevel,pl:mixin:APP:kubejs-common.mixins.json:LevelMixin,pl:mixin:APP:lootr.mixins.json:MixinLevel,pl:mixin:APP:observable.common.json:LevelMixin,pl:mixin:APP:utilitix.mixins.json:MixinLevel,pl:mixin:A}

Problem with one of these Mods

Link to comment
Share on other sites

I am not sure it is one of those mods.

Looking at the error message, the problem is it trying to BlockState.getBlock() where the BlockState comes from a chunk section update packet.

The problem is the BlockState is null

The block states are actually sent as ints in the packet and then turned into BlockStates using Block.BLOCK_STATE_REGISTRY.byId()

That BLOCK_STATE_REGISRY is synchronised with the server when a client joins the game so there should be no way for that method to return null. The client should know about all the block states the server has.

 

Do you have an anti-cheat mod or something similar? These are known to rewrite these packets to hide ores from hackers.

 

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

23 minutes ago, warjort said:

Do you have an anti-cheat mod or something similar?

I do not. The modpack is All The Mods 7 (with a few gameplay mods added on top, but I could reproduce it with plain ATM7 as well).

The server is completely unaware of anything being amiss.

I posted a quick capture of the bug in action at https://imgur.com/a/FMrMVvL. You can see the "short form" of the NPE popping up as soon as the small create contraption enters render distance and stopping when i move back a bit.

I also have no idea what causes it to either log a full stack trace or just the short NPE, a factor seems to be how long I am in the area.

Link to comment
Share on other sites

The obvious candidate would of course be the create mod then.

 

Is it possible for you to create a copy of the server and start it without create installed to see if you get the same error in that area?

If the mod is not present, it will turn its blocks to "air".

I wouldn't do it on the live world unless you have a backup, you will probably corrupt things.

 

If that's not it, the only thing I can suggest is to perform that process for other mods until you find the problem one.

An efficient way is to start by removing "half" the mods to eliminate many at once, then repeat with half the mods in the problem group.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

I quoted "half" because you can ignore things like jei and graphics mods that don't have blocks.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

32 minutes ago, warjort said:

The obvious candidate would of course be the create mod then.

It's one candidate. In another area I can trigger the same NPE by turning a Modular Router on and off. In another area I can trigger it by breaking and placing a Tinkers' seared tank with lava in it.

All I could find out so far is, it's got "something" to do with block updates and it's not the specific mod doing the update that causes the error.

The problem with bisecting the pack as a whole is the large number of interdependencies between mods. Turn off the wrong group of mods and you won't be able to load the world any more.

Edited by Jinks Bot
Link to comment
Share on other sites

That sounds very cursed.

You should know its not just the block you change. It could be a neighbouring block that changes in response to what you did and so on to its neighbours.

 

The block is probably not visible to you on the client if you have that NPE. But the server knows it exists. It would be a "ghost block".

You could try to detect it by walking around and see if the server stops you walking into a certain block that looks like air to you.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

It's not a ghost block, The create contraption was built on a clean area that was only grass before.

Removing create from the pack reduced the frequency of the NPE from twice a second to once every five seconds.

The modular router in the mining dimension still reliably causes it when turned on. (I even moved it around so it's not touching any other block.) I even changed source and target of the router without success.

Link to comment
Share on other sites

When I mentioned neighbouring blocks above I forgot to conclude my thought 🙂

I was trying to point out that you should look for a block that is common to the areas you have a problem with, rather just concentrating on the block you directly interact with.

e.g. follow lines of pipes or redstone to see what they connect to.

.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

Yeah, I thought of that already.

The create contraption was wholly self-contained and the router moves blocks from a drawer to a chest on a hopper (both of which I've changed already for other blocks to be sure.)

The only common blocks surrounding both are minecraft:grass_block and minecraft:air by now.

 

Edit: This is getting curiouser and curiouser. The modular router wirelessly feeds ores from a drawer into a  Immersive Engineering crusher. When I feed directly into the crusher, the NPE happen when I turn the router on, when i feed into a hopper that feeds into the crusher, the NPE happens when I turn the the router off...

Edited by Jinks Bot
Link to comment
Share on other sites

Alright, I give up!

I've been adding and removing mods for 2 days straight now.

Sometimes the error goes away when I remove a mod then stays away when I re-add it. Sometimes a mod I had previously ruled out suddenly is involved. It seems to be totally random.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.