The bug
Predicates can reference each other, and when this forms a cycle, the game stack-overflows and crashes.
How to reproduce
Download and apply the attached data pack: [mediaInline]
It defines a predicate,test:test3, with the following definition:{ "type": "any_of", "terms": [ "test:test3", { "type": "weather_check" } ] }Run
/execute if predicate test:test3
Expected result
Either the definition should fail to load, the command should fail at runtime, or the command should succeed.
Observed result
The game freezes and crashes
Notes
At load time, the game does detect this:
[10:03:39] [Worker-Main-22/WARN]: Found loot table element validation problem in {test:test3@minecraft:predicate}.terms[0]: test:test3 of type minecraft:predicate is recursively calledHowever, only recursive loot tables are prevented from crashing:
[10:00:06] [Server thread/WARN]: Detected infinite loop in loot tablesLinked issues
relates to 3
Attachments
Comments 0
No comments.