Server crashes when loading chunks on rare occasions.
AiLovesAi opened this issue ยท 1 comments
Describe the bug
Server crashes when loading chunks on rare occasions. The back trace only shows this mod calling the functions that cause the error, so I assume it is only an issue with this mod. However, it could be a compatibility issue. I have spent the past few days trying to find if any other mod could be causing the issue as well, but haven't found anything that causes it specifically. I am writing this in case it is not a compatibility error, but if it is then I don't suppose there's much to do about it.
The error itself is "java.util.ConcurrentModificationException" which loops until the game crashes because the max tick time (60s) has been reached. Here is the error itself (from the end of the server log): https://pastebin.com/nFdnAvku
To Reproduce
Due to how rare the issue happens, it will likely be hard to reproduce.
Steps to reproduce the behavior:
1: If any other mods could be an issue with it, those mods may need to be installed for the error.
2: Obtain and open an atlas.
3: Teleport to ungenerated chunks very far away (4000 blocks away was when this occurred most recently).
4: Interact with the world. I am not sure if this has anything to do with causing the issue, but I did each time just before it crashed.
5: Reloading the same chunks that cause the error (by logging into the server) will cause the error and crash again.
Expected behavior
The chunks should load in, and the atlas should show the area around the new location of the player.
Screenshots
https://i.imgur.com/Z9DzrKF.png
Forge version information:
- Minecraft: 1.16.5
- Forge: 36.2.2
- AntiqueAtlas: 6.0.1-forge-mc1.16.5
Additional context
Server log: https://pastebin.com/xJ8TK1EC
Crash log: https://pastebin.com/4yrzgWc7
Mod list: https://pastebin.com/TNCqjmMN
As usual, just after posting, I realized what the issue is. I do not know for sure that it is not caused by Antique Atlas, but I doubt it now. According to Java documentation:
This exception may be thrown by methods that have detected concurrent modification of an object when such modification is not permissible.
The error occurs when this mod updates the atlas, and an internal function is called has some sort of array list which is not supposed to be edited. ArrayList.next calls ArrayList.checkForComodification to make sure it hasn't been modified, but it has, so that error gets thrown back to a function in ChunkTaskPriorityQueueSorter (I would assume just getting the priority of each chunk task). Good news is there are only 20 or so mods that are listening to the event, (WorldTickEvent), so I should be able to find it. It doesn't appear this mod has a WorldTickEvent listener.