Skip to content

Race condition easily crashes servers using block entities #3717

Open

Description

@VideoGameSmash12

Server Implementation

Paper

Server Version

26.3

Describe the bug

A race condition with how FastAsyncWorldEdit edits block entities is able to cause the Minecraft server to crash entirely with a ConcurrentModificationException. This can be used to easily crash any server which gives players WorldEdit access.

To Reproduce

  1. Recreate this exact structure containing observer clocks, pistons, and block entities in a single chunk
Image
  1. Select the shulker boxes (or whatever block entities you used) with your wand.

  2. Set your selection to air. If nothing happens, undo it and try it again. Keep doing it.

Expected behaviour

I expect the server to not crash while messing with block entities

Screenshots / Videos

https://youtu.be/DkOg4KYMNjQ

Error log (if applicable)

---- Minecraft Crash Report ----
// Oops.

Time: 2026-11-02 02:11:22
Description: Exception ticking world

java.util.ConcurrentModificationException
    at java.base/java.util.HashMap.compute(HashMap.java:1326)
    at net.minecraft.world.level.chunk.LevelChunk.updateBlockEntityTicker(LevelChunk.java:913)
    at net.minecraft.world.level.chunk.LevelChunk.addAndRegisterBlockEntity(LevelChunk.java:513)
    at net.minecraft.world.level.Level.setBlockEntity(Level.java:1707)
    at net.minecraft.world.level.block.piston.PistonBaseBlock.moveBlocks(PistonBaseBlock.java:408)
    at net.minecraft.world.level.block.piston.PistonBaseBlock.triggerEvent(PistonBaseBlock.java:163)
    at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.triggerEvent(BlockBehaviour.java:912)
    at net.minecraft.server.level.ServerLevel.doBlockEvent(ServerLevel.java:2082)
    at net.minecraft.server.level.ServerLevel.runBlockEvents(ServerLevel.java:2059)
    at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:869)
    at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1807)
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1604)
    at net.minecraft.server.dedicated.DedicatedServer.tickServer(DedicatedServer.java:404)
    at net.minecraft.server.MinecraftServer.processPacketsAndTick(MinecraftServer.java:1662)
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1332)
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:299)
    at java.base/java.lang.Thread.run(Thread.java:1474)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
    at java.base/java.util.HashMap.compute(HashMap.java:1326)
    at net.minecraft.world.level.chunk.LevelChunk.updateBlockEntityTicker(LevelChunk.java:913)
    at net.minecraft.world.level.chunk.LevelChunk.addAndRegisterBlockEntity(LevelChunk.java:513)
    at net.minecraft.world.level.Level.setBlockEntity(Level.java:1707)
    at net.minecraft.world.level.block.piston.PistonBaseBlock.moveBlocks(PistonBaseBlock.java:408)
    at net.minecraft.world.level.block.piston.PistonBaseBlock.triggerEvent(PistonBaseBlock.java:163)
    at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.triggerEvent(BlockBehaviour.java:912)
    at net.minecraft.server.level.ServerLevel.doBlockEvent(ServerLevel.java:2082)
    at net.minecraft.server.level.ServerLevel.runBlockEvents(ServerLevel.java:2059)

Fawe Debugpaste

https://athion.net/ISPaster/paste/view/f71b01dd0a174189ade4a2c4ac876095

Are you interested in contributing a fix?

No

Activity

  1. added
    Requires TestingThis is a new issue which needs to be approved before labeled with "bug"
    on Nov 5, 2026
  2. changed the title [-]Easily abusable race condition easily crashes servers using block entities[/-] [+]Race condition easily crashes servers using block entities[/+] on Nov 5, 2026
  3. RedstoneFuture commented on Nov 10, 2026

    @RedstoneFuture
    Member

    Note: Last change about FAWE processing and block entities: #3714

  4. RedstoneFuture commented on Nov 10, 2026

    @RedstoneFuture
    Member

    With the FAWE v.2.16.3 (dev version) the server doesn’t crash for me on a PaperMC 26.2 test-server. Instead, the observer-clocks gradually "freeze" one by one. Which is, of course, better than a crash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Requires TestingThis is a new issue which needs to be approved before labeled with "bug"

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions