Repeating "Synchronising" (hundreds of times a second) on server
hrafnbrand opened this issue ยท 5 comments
Please read the guide for contributing before posting.
Minecraft version: 1.12.2
Wizardry version: 4.2.5
Environment: Server
Issue details: I have a doozy of an issue on a server I'm running for friends. A player attempted to travel to the Underworld (DIM 33) and died upon impact, then "it started killing Playername and trying to take Playername to the underworld"
I checked the server logs and was met with thousands upon thousands of the following line in the console:
[Server] Server thread/INFO [ebwizardry]: Synchronising spell emitters for Playername
This behaviour repeated until the server was forcibly killed
Other mods involved: Wizardry Mod (unknown ver)
Link to crash report (if applicable): N/A, server killed
Sounds to me like your problem is with whatever mod adds this Underworld, but it's also unclear what the problem you're experiencing is. Was the player repeatedly being killed? Were other players affected in some way? Did the server stop responding?
Here's the bit of wizardry's code that's involved https://github.com/Electroblob77/Wizardry/blob/1.12.2/src/main/java/electroblob/wizardry/data/SpellEmitterData.java#L121
Whenever a player enters a new dimension, that code synchronises the positions of any spells currently being cast at a point via commands with that player's client. It should only be called once per dimension change, so something is causing the game to keep repeating the dimension change. What that might be, I don't know. Do you have the full log?
@Tora-B Apologies, first time using github for this purpose. The issue is that after the initial death loop, the server was attempting to synchronize hundreds of times a second with that player, even after a full reboot, and managing to get the player out of the Dimension. This persisted from the time the player logged in after a server reboot, until a crash or hard Kill command. The server, as a result, was hitting upwards of 200% CPU usage, making it unplayable for all other players.
@Electroblob77 I'm afraid the log was nothing but thousands upon thousands of lines of "[Server] Server thread/INFO [ebwizardry]: Synchronising spell emitters for Playername" with no variation. I honestly wish I had more information for you.
A solution was found, however much less than ideal, in deleting the player's playerdata from the server.
Interesting. I wonder if that player's data got corrupted somehow? The fact remains that if a dimension change event is being fired repeatedly then things will go wrong - just in this case wizardry happened to be in the firing line, so to speak. You could temporarily remove wizardry and try to reproduce the behaviour - clearly you won't get the log spam, but you may well still see the server freeze (minecraft might try to sync the player's inventory repeatedly, for instance). As Tora-B pointed out, I suspect the problem here is to do with whichever mod adds the underworld, but beyond that I don't know.