mojira.dev

Jimmyfa

Assigned

No issues.

Comments

Attaching a reproduction kit (MC-311994_repro_kit.zip, ~37 KB, Python source only, no binaries) that reproduces both halves of this issue against an unmodified vanilla 26.3 server in one command.

Contents

  • repro_mc311994.py – joins the server as a minimal offline-mode client (fake_player.py, Python 3.10+, standard library only), places a stone block, waits until the player's tick counter exceeds the block's mining time, then sends START_DESTROY_BLOCK immediately followed by STOP_DESTROY_BLOCK. The result is derived from the server's own block_update packets. With --stall it then joins a second, fresh player and repeats the sequence to show the stalled case.

  • Two console logs from the original test runs (format explained in the README).

  • README.md with server settings, usage, expected output, and pointers to the relevant code.

How to run (throwaway test server with online-mode=false and network-compression-threshold=-1):

python repro_mc311994.py --host 127.0.0.1 --port 25565 --name Tester --stall

Op the player when the script asks for it.

Result on 26.3

RESULT: block (...) became air ~100 ms after STOP with zero mining time -> BUG REPRODUCED
RESULT: fresh player ...: block NOT broken after 8 s -> STALL REPRODUCED

On a correct build the first block should still be there 3 s after STOP, and the fresh player's block should break after ~7.5 s.

In normal play this path is hit whenever the server's mining progress lags the client's (e.g. low TPS), so it is not limited to modified clients.

[media]