Qveshn / LightAPI

Bukkit Library for create invisible light source
Other
29 stars 13 forks source link

[WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns #12

Closed Ne0shka closed 3 years ago

Ne0shka commented 4 years ago

[13:42:17 WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.MCUtil.ensureMain(MCUtil.java:54) [13:42:17 WARN]: at org.bukkit.craftbukkit.v1_12_R1.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:18) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:170) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:153) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:149) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.World.getChunkAt(World.java:357) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.craftbukkit.CraftBukkit_v1_12_R1.sendChunkSectionsUpdate(CraftBukkit_v1_12_R1.java:62) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.NmsHandlerBase.sendChunkSectionsUpdate(NmsHandlerBase.java:147) [13:42:17 WARN]: at ru.beykerykt.lightapi.request.RequestSteamMachine.run(RequestSteamMachine.java:130) [13:42:17 WARN]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [13:42:17 WARN]: at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [13:42:17 WARN]: at java.lang.Thread.run(Thread.java:821) [13:42:17 WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.MCUtil.ensureMain(MCUtil.java:54) [13:42:17 WARN]: at org.bukkit.craftbukkit.v1_12_R1.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:18) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:170) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:153) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:149) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.World.getChunkAt(World.java:357) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.craftbukkit.CraftBukkit_v1_12_R1.sendChunkSectionsUpdate(CraftBukkit_v1_12_R1.java:62) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.NmsHandlerBase.sendChunkSectionsUpdate(NmsHandlerBase.java:147) [13:42:17 WARN]: at ru.beykerykt.lightapi.request.RequestSteamMachine.run(RequestSteamMachine.java:130) [13:42:17 WARN]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [13:42:17 WARN]: at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [13:42:17 WARN]: at java.lang.Thread.run(Thread.java:821) [13:42:17 WARN]: java.lang.IllegalStateException: Asynchronous Async Chunk Load! Blocking thread until it returns [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.MCUtil.ensureMain(MCUtil.java:54) [13:42:17 WARN]: at org.bukkit.craftbukkit.v1_12_R1.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:18) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:170) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:153) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:149) [13:42:17 WARN]: at net.minecraft.server.v1_12_R1.World.getChunkAt(World.java:357) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.craftbukkit.CraftBukkit_v1_12_R1.sendChunkSectionsUpdate(CraftBukkit_v1_12_R1.java:62) [13:42:17 WARN]: at ru.beykerykt.lightapi.server.nms.NmsHandlerBase.sendChunkSectionsUpdate(NmsHandlerBase.java:147) [13:42:17 WARN]: at ru.beykerykt.lightapi.request.RequestSteamMachine.run(RequestSteamMachine.java:130) [13:42:17 WARN]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [13:42:17 WARN]: at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [13:42:17 WARN]: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [13:42:17 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [13:42:17 WARN]: at java.lang.Thread.run(Thread.java:821)

Ne0shka commented 4 years ago

Version: latest

Ne0shka commented 4 years ago

Paper version git-Paper-1618 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)

Qveshn commented 4 years ago

Hmm... Sounds like the chunk is unloaded at this moment and Paper loads it with warning about async thread operation. Notes: The chunk is unloaded if players are far from it.

  1. How often does it happen? Can you stable reproduce this bug?
  2. What plugin does use LightAPI? Why lighting is changed at the position when players are far from there?
Qveshn commented 4 years ago

also, what value does "view-distance" have in spigot.yml?

Qveshn commented 4 years ago

I have reproduce this "bug". It is not quite a bug. It is warning. Paper warns if chunk loading is in non-main thread. Paper continues to load chunk after this warning. I have made post to ask why it does so. The post is here: https://papermc.io/forums/t/1-12-2-chunkioexecutor-syncchunkload-mcutil-ensuremain/3175

I think I know what to do in this case. I can just skip chunk-update-packets for players if chunk is unloaded. This is not very fine, but this will resolve this warnings. I will think about this.

Only one thing I can not understand. Player had to stand near the chunk where the light was changed. Otherwise plugin should not send him notifications about chunk updates. Therefore, the distance between player and this chunk must be less or equal to "view-distance" (parameter in spigot.yml). And if so, then this chunk should not have been unloaded. Very strange...

Ne0shka commented 4 years ago

How often does it happen? Can you stable reproduce this bug?

This warning appears spontaneously after a short period of time (spam in the console)

What plugin does use LightAPI? Why lighting is changed at the position when players are far from there?

https://www.spigotmc.org/resources/interactionvisualizer-visualize-function-blocks-like-crafting-tables-with-animations-client-side.77050/

also, what value does "view-distance" have in spigot.yml?

view-distance: 10