Mojira Archive
MC-12363

Lava / water / powder snow bucket desync when using it while rapidly turning

The bug

A desync can happen when rapidly turning and trying to use a lava, water, or powder snow bucket. The bucket might appear full but you placed lava / water / powder snow; or the bucket might appear empty but you did not place lava / water / powder snow.

How to reproduce

  1. Give yourself a lava bucket
  2. Spin around (move mouse) standing on a flat plain and repeatedly try to put down and pick up the lava in the bucket
    About 1 in 10 times, the client and server desync (e.g. I see the lava on the ground, and also in my bucket, until I use the bucket again or move it in my inventory; or I see no lava on the ground and my inventory displays the bucket as empty, but I actually still have lava and can place it).

Code analysis

Based on 1.12.2 decompiled using MCP 9.40

Using a bucket calls server-side net.minecraft.item.ItemBucket.onItemRightClick(World, EntityPlayer, EnumHand) which calculates the position itself and therefore can cause a desync. Ideally the position for picking up liquids and placing them should be calculated client-side only and then the server should only validate it and use that position.

Examples

Fixed

[Mod] Avoma

Kuczora Tibor

[Mojang] Panda

2013-03-19, 05:32 PM

2024-08-11, 12:33 PM

2021-03-17, 03:49 PM

138

55

Confirmed

Important

Block states, Networking

bucket, desync, empty, lava, water

Minecraft 1.5 - 21w10aMinecraft 1.5, Minecraft 1.6.1, Minecraft 1.6.2, Minecraft 1.7.4, Minecraft 14w27b, Minecraft 1.8, Minecraft 1.8.1-pre3, Minecraft 1.8.8, Minecraft 15w31c, Minecraft 15w35e, Minecraft 15w43a, Minecraft 15w46a, Minecraft 1.10.2, Minecraft 16w42a, Minecraft 1.12, Minecraft 1.12.1 Pre-Release 1, Minecraft 1.12.1, Minecraft 1.12.2, Minecraft 18w03b, Minecraft 18w10d, Minecraft 18w20c, Minecraft 1.13-pre2, Minecraft 1.13-pre3, Minecraft 1.13-pre8, Minecraft 1.13-pre9, Minecraft 1.13-pre10, Minecraft 1.13, Minecraft 18w30b, Minecraft 18w31a, Minecraft 18w32a, Minecraft 18w33a, Minecraft 1.13.1-pre1, Minecraft 1.13.1, Minecraft 1.13.2-pre1, Minecraft 1.13.2-pre2, Minecraft 1.13.2, Minecraft 18w43b, Minecraft 18w45a, Minecraft 18w46a, Minecraft 18w49a, Minecraft 19w02a, Minecraft 19w03a, Minecraft 19w05a, Minecraft 19w06a, Minecraft 19w07a, Minecraft 19w08a, Minecraft 19w09a, Minecraft 19w11a, Minecraft 19w11b, Minecraft 19w12b, Minecraft 19w13a, Minecraft 19w13b, Minecraft 19w14a, Minecraft 19w14b, Minecraft 1.14 Pre-Release 1, Minecraft 1.14 Pre-Release 2, Minecraft 1.14 Pre-Release 3, Minecraft 1.14 Pre-Release 4, Minecraft 1.14 Pre-Release 5, Minecraft 1.14, Minecraft 1.14.1, Minecraft 1.14.2 Pre-Release 1, Minecraft 1.14.2 Pre-Release 2, Minecraft 1.14.2, Minecraft 1.14.3 Pre-Release 2, Minecraft 1.14.3, Minecraft 1.14.4 Pre-Release 1, Minecraft 1.14.4 Pre-Release 3, Minecraft 1.14.4 Pre-Release 4, Minecraft 1.14.4 Pre-Release 5, Minecraft 1.14.4 Pre-Release 6, 1.14.4, 19w34a, 19w35a, 19w36a, 19w37a, 19w38b, 19w39a, 19w40a, 19w41a, 19w42a, 19w45b, 19w46b, 1.15 Pre-release 1, 1.15 Pre-Release 2, 1.15 Pre-release 3, 1.15 Pre-release 4, 1.15 Pre-release 5, 1.15 Pre-release 6, 1.15 Pre-release 7, 1.15, 1.15.1, 1.15.1 Pre-release 1, 1.15.2 Pre-Release 1, 1.15.2 Pre-release 2, 1.15.2, 20w06a, 20w07a, 20w08a, 20w09a, 20w10a, 20w11a, 20w12a, 20w13a, 20w13b, 20w14a, 20w15a, 20w17a, 20w18a, 20w19a, 20w20a, 20w20b, 20w21a, 20w22a, 1.16 Pre-release 1, 1.16 Pre-release 2, 1.16 Pre-release 3, 1.16 Pre-release 5, 1.16 Pre-release 6, 1.16 Pre-release 7, 1.16 Pre-release 8, 1.16 Release Candidate 1, 1.16, 1.16.1, 20w28a, 20w30a, 1.16.2 Pre-release 1, 1.16.2 Release Candidate 1, 1.16.2 Release Candidate 2, 1.16.2, 1.16.3 Release Candidate 1, 1.16.3, 1.16.4 Pre-release 1, 1.16.4 Pre-release 2, 1.16.4 Release Candidate 1, 1.16.4, 20w45a, 20w46a, 20w48a, 20w49a, 20w51a, 21w03a, 1.16.5, 21w05a, 21w05b, 21w06a, 21w07a, 21w08b, 21w10a

Minecraft 14w30c, 21w11a