Lighting thread and gameplay thread can desync
The bug
In a previous version the lighting engine was moved to a separate thread. However it appears there is nothing which prevents desync between the gameplay and the lighting thread.
This can cause all kind of unexpected behavior, for example:
- Being unable to plant crops in lit up caves
- Monters spawning in lit up areas
Stopping the server / closing a world when the lighting thread has not caught up causes pending light updates to get lost
How to reproduce
- Place a repeating command block (always active), pointing upwards
fill ~ 255 ~ ~20 255 ~20 stone
- Place a chain command block above (always active)
fill ~ 255 ~ ~20 255 ~20 air
- Set the time to night
/time set night
- Open the debug screen (F3)
- Place a light source, e.g. a torch
The "block" value for "Server light" does not change - Reopen the world
The area around the light source is not lit up