mojira.dev
MC-310314

Number providers that reference themselves crash the game when invoked

The bug

Number providers can reference each other, and when this forms a cycle, the game stack-overflows and crashes.

How to reproduce

  1. Download and apply the attached data pack: [mediaInline]
    It defines a number provider modifier, test:test3, with the following definition:

    {
      "type": "uniform",
      "min": 0,
      "max": "test:test3"
    }
  2. Run /give @p apple[compostable={layers:"test:test3"}]

  3. Use the apple on a composter

Expected result

Nothing should happen

Observed result

The game freezes and crashes

[media]

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:number_provider}.max: test:test3 of type minecraft:number_provider is recursively called

However, only recursive loot tables are prevented from crashing:

[10:00:06] [Server thread/WARN]: Detected infinite loop in loot tables

Linked issues

Attachments

Comments 0

No comments.

tryashtar

(Unassigned)

Confirmed

Platform HC

Important

Data Packs

26.3 Snapshot 5

26.3 Snapshot 6

Retrieved