The bug
When placing a sign against a cactus, the cactus breaks and the sign drops as an item. However, if the sign is placed on the inside of a ring of four cacti, the cacti that break as a result of this depends on the one it is placed on.
Related issues
testing discovered
Attachments
Comments


The bug is that placing a sign inside the middle of four cacti should break all cacti and not just the cactus that the sign was placed on.
This is due to the update order, at which the cactus that the sign is placed on is updated and checks to see if it should break.
It breaks, then updates the sign and it breaks.
Then the other three cacti are updated and check to see if they should break, but because the sign has already broken when they check, they see no sign and don't break.

Minecraft is rife with nondeterminism and race conditions, and most are just not worth fixing. You're not going to find a clean fix for this one without basically overhauling the whole game. There are some "update phases," where certain kinds of updates are queued, and then they're executed in a batch while their effects are queued. One example is the interaction between redstone wire and pistons. But to eliminate what you're seeing would require that this kind of queueing happen at all levels. And then the performance hit would be murder. If you want to discuss this further, bring it up on /r/mojira or the EigenCraft Discord.
Especially considering that this is more "slightly annoying" than it is "game breaking" or "data loss," I suggest closing this as Invalid so that attention can be focused on more serious bugs.

Why is this marked as affecting 1.12.2 if it's impossible to place signs at all in such a position?

relates to MC-161402
affectes 1.15-pre4
Can confirm in 20w51a.
Can confirm in 21w05b.
Can confirm in 21w06a.
Can confirm in 21w08b.
Can confirm in 1.16.5.
Can confirm in 1.17.
Can confirm in 1.17.1.

The bigger bug here is probably that the game even lets you place signs on cacti in the first place
Can confirm in 1.19.