Integrated NBT

Integrated NBT

12M Downloads

Trying to pull non-existent NBT tags crash the server

LezChap opened this issue ยท 4 comments

commented

I'm trying to get the crashlogs from the server admin, but until I do I wanted to start to get the ball rolling on this bug report.

I pulled a TileEntity NBT card from a Block Reader looking at a Mekanism Chemical Washer. The relevant snip of the NBT Tree, when it contains a slurry, are as follows:

{
	SlurryTanks: [{
		stored: {
			amount: 1000L,
			slurryName: "mekanism:clean_iron"
		},
		Tank: 1b
	}]
}

vs when it's empty:

{
	SlurryTanks: [{}]
}

I told the NBT Extractor to pull the reference of the "amount" tag, and put this card in a Display Panel. When the tank has clean slurry, it works fine. However, when the slurry is pulled out (and empty), this card in the Display would crash the server. When the server came back online, the Display would show a red X and the Block Reader would need to be broken/replaced before it started working again in the Display (if there was Slurry in the tank) or crash the server again (if the tank was empty).

I'm assuming that, for whatever reason, trying to pull a tag from a non-existent/no longer existing path causes a crash. I didn't expect this to crash the server, I expected an error or the card to just not work...if I get the crashlog from the server admins I'll add them, the only one they sent me (thus far, which I think was the wrong one) was a watchdog crash, and when this happened, the server crashed instantly (most watchdog crashes I've experienced in the past, I remember being on a non-responsive server for a minute or so before it went down, and the crashes I experienced above were instant).

This happened in the Direwolf20 1.16 version 1.5.1 of the pack, using the following relevant mod versions (let me know if I missed one you need):
Forge 35.1.36
CyclopsCore-1.16.4-1.11.0
IntegratedDynamics-1.16.4-1.4.0
integratednbt-1.16.4-1.4.0
Mekanism-1.16.4-10.0.18.445

commented

That is definitely one of the use cases I tested during development. I probably missed some edge cases. I will try to reproduce ASAP. Meanwhile, if you get the log, please send it. Thanks.

commented

@LezChap I don't need the log anymore. I have successfully reproduced the problem. I will push out a fix ASAP.

commented

Ok, this issue got automatically closed because I said "Fix #6" in the commit message. I have not uploaded the jar file to CurseForge just yet.

commented