#Possible mod incompatibility leading to hosed tags, broken recipes

17 messages · Page 1 of 1 (latest)

hoary flax
#

I'm seeing an interesting bug with KJS 6.1-build.337 (Forge 43.2.14), seemingly related to Quark at least, whereby fundamental recipes like oak logs to planks are broken.

No scripts necessary but including the below kubejs/server_scripts/recipes.js seems to help with reproducibility:

ServerEvents.recipes(event =>
{
  event.shapeless('minecraft:gravel', ['3x minecraft:flint'])
})

Logs seem to indicate hosed tags (serializer-related maybe?) with many, many entries like this:

[01/08/2023 20:18:02 pm] [Server thread/WARN] Tried to get tag minecraft:acacia_logs from an empty tag context!
[01/08/2023 20:18:02 pm] [Server thread/WARN] Tried to get tag minecraft:planks from an empty tag context!
[01/08/2023 20:18:02 pm] [Server thread/WARN] Tried to get tag forge:rods/wooden from an empty tag context!
[01/08/2023 20:18:02 pm] [Server thread/WARN] Tried to get tag forge:cobblestone/normal from an empty tag context!
[...]

Full log here: https://paste.atlauncher.com/view/5edda05c-3f9e-491e-a1ea-20314ea01b59

Discovered in a large 300+ mod in-dev modpack and reduced down to an instance containing only the above script and the 15 mods listed here: https://pste.ch/qojilajome.css

This bug seems to only (or mostly) show up when creating new worlds, all pre-existing worlds I've thrown at this bisection haven't shown the bug.

Before I go posting issues on Git Hub, does this sound familiar to anyone, or even likely that KJS could be the culprit?

primal pondBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

lucid rose
#

would be nice if you could get a stacktrace from those

hoary flax
#

I'm game for trying anything. How would I go about that? Is there something I can toggle in config/common.properties or..?

lucid rose
#

you would have to attach a debugger

#

or use command line tools from a jdk to do the same thing

hoary flax
#

I was afraid that's what you meant...

#

So where should I be setting a breakpoint? Guessing higher up than the System.out.println() that dumps the warning?

lucid rose
#

it would be more like a LOGGER.warn().
Where it logs would be fine, the important bit is the stacktrace (and maybe the exception thats generated, if any)

hoary flax
#

Thanks 🍺

#

Might take me a while (never used jdb) but I'll give it a go

hoary flax
#

Got jdb working to the point where I can set breakpoints and step through execution but I can't figure out how to trap on the KubeJS.LOGGER.warn() 😕

hoary flax
#

Could trapping on dev.latvian.mods.kubejs.item.ingredient.TagContext$1.getTag() suffice? I'm able to get a stacktrace there if it is

lucid rose
#

i see quark in there
so it is likely that quark is trying to do something too early

#

make a bug report on the kjs github
maybe quark one too

hoary flax
#

will do. thanks for your help! 🍺