WearBlackAllDay / DimensionalThreading

An attempt to optimize the fabric server, by assigning each dimension their own thread.
MIT License
255 stars 22 forks source link

Crash when multiple portal transport happens in same tick #11

Closed aria1th closed 3 years ago

aria1th commented 3 years ago

crash-2021-01-03_21.13.46-server.txt

Guessing that's the cause of the crash, had 7 players in same server but ran normally for 26 hours and it happened

2:45] [Server thread/ERROR]: Encountered an unexpected exception net.minecraft.class_148: Exception ticking world at dimthread.util.CrashInfo.crash(CrashInfo.java:28) ~[DimThread-1.2.2.jar:?] at net.minecraft.server.MinecraftServer.handler$bcf000$tickWorlds(MinecraftServer.java:5251) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:857) ~[intermediary-server.jar:?] at net.minecraft.class_3176.method_3813(class_3176.java:303) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:808) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.handler$bdl000$modifiedRunLoop(MinecraftServer.java:6297) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:648) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:254) ~[intermediary-server.jar:?] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275] Caused by: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1445) ~[?:1.8.0_275] at java.util.HashMap$KeyIterator.next(HashMap.java:1469) ~[?:1.8.0_275] at net.minecraft.class_3218.method_8413(class_3218.java:1002) ~[intermediary-server.jar:?] at net.minecraft.class_1937.method_30092(class_1937.java:251) ~[intermediary-server.jar:?] at net.minecraft.class_1937.method_8652(class_1937.java:217) ~[intermediary-server.jar:?] at net.minecraft.class_1937.method_8501(class_1937.java:321) ~[intermediary-server.jar:?] at net.minecraft.class_2513.method_9514(class_2513.java:74) ~[intermediary-server.jar:?] at net.minecraft.class_4970$class_4971.method_26199(class_4970.java:878) ~[intermediary-server.jar:?] at net.minecraft.class_3218.redirect$zde000$redirectBlockStateTick(class_3218.java:3034) ~[intermediary-server.jar:?] at net.minecraft.class_3218.method_18203(class_3218.java:517) ~[intermediary-server.jar:?] at net.minecraft.class_3215.method_20801(class_3215.java:390) ~[intermediary-server.jar:?] at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_275] at net.minecraft.class_3215.method_14161(class_3215.java:368) ~[intermediary-server.jar:?] at net.minecraft.class_3215.method_12127(class_3215.java:337) ~[intermediary-server.jar:?] at net.minecraft.class_3218.method_18765(class_3218.java:348) ~[intermediary-server.jar:?] at net.minecraft.server.MinecraftServer.md293693$lambda$null$0$2(MinecraftServer.java:5241) ~[intermediary-server.jar:?] at dimthread.DimThread.swapThreadsAndRun(DimThread.java:34) ~[DimThread-1.2.2.jar:?] at net.minecraft.server.MinecraftServer.md293693$lambda$tickWorlds$1$1(MinecraftServer.java:5239) ~[intermediary-server.jar:?] at threading.ThreadPool.lambda$null$1(ThreadPool.java:50) ~[6effe1d5-f352-4702-b854-0dcb1398d62e.jar:?] at threading.ThreadPool.lambda$execute$0(ThreadPool.java:44) ~[6effe1d5-f352-4702-b854-0dcb1398d62e.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_275] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_275] ... 1 more

KaptainWutax commented 3 years ago

The crash report you have provided does not seem to match the logs you sent. It seems to be related to the entity navigation list getting modified asynchronously. I see no way this would ever happen in vanilla since each world is responsible for its own list. It might be another mod doing something wrong OR being incompatible with dimthread. Considering it took 26 to crash though, it will not be trivial to test which mod's fault it is.

rmkwulf1993 commented 3 years ago

There are some vanilla portal bugs that have crashed MelonTech and Mechanists on multiple occasion Elvar got it to happen multiple times in an hour. I had it happen last night can be hours or weeks before it happens but its usually caused by one person with poor connection and I believe its more likely to occur with eating or performing actions in portals im not sure it is the problem you are describing just wanted to mention there are some awkward issues with portals right now.

KaptainWutax commented 3 years ago

This doesn't seem related to dimthread at all. So gonna close it for now. :)