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):
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 sendsSTART_DESTROY_BLOCKimmediately followed bySTOP_DESTROY_BLOCK. The result is derived from the server's ownblock_updatepackets. With--stallit 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.mdwith server settings, usage, expected output, and pointers to the relevant code.How to run (throwaway test server with
online-mode=falseandnetwork-compression-threshold=-1):Op the player when the script asks for it.
Result on 26.3
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.