
[Bug]: Server Watchdog Crash During Swet Spawning due to Blocking Chunk Request
Ku-Tadao opened this issue · 1 comments
Minecraft Version
1.20.1
Mod Version
2.0.18
Forge/Neoforge Version
47.4.0
What happened?
When a player is in the Aether dimension on a dedicated server, the server is susceptible to a watchdog crash. The crash is caused by a deadlock on the main server thread.
Analysis of the crash report shows that during the natural mob spawning process, the game attempts to check spawn rules for a Swet. The PL-Like Swet Behavior
introduced by Aether Redux includes a check for nearby banners (Swet.inRadiusOfBanner
). This function makes a blocking chunk request if the area it needs to check is not loaded.
Since this check is running on the main server thread, and the main server thread is the only thread that can load the chunk, it gets stuck waiting for itself. This freezes the server, and after 60 seconds, the watchdog terminates the process.
What was the expected result?
The server should handle mob spawning without deadlocking. Spawn condition checks should not make blocking calls for unloaded chunks from the main server thread. The server should continue to run normally while players are in the Aether.
Steps to Reproduce
- Set up a dedicated server with Minecraft 1.20.1, Forge 47.4.0, The Aether, and Aether Redux 2.0.18.
- Ensure the
aether_redux_common.toml
config has"PL-Like Swet Behavior" = true
(this is the default setting). - Have a player enter and explore the Aether dimension.
- The crash will occur when the server's natural mob spawner attempts to spawn a Swet and its banner-checking logic needs to access an unloaded chunk.
- The server's main thread will hang, and the watchdog will crash the server after 60 seconds.
Log Output (if applicable)
The full crash report is provided below, as it contains the most relevant information.
Crash Report (if applicable)
Is this a compatibility issue with another mod?
This appears to be a bug within Aether Redux's mob spawning logic that causes a deadlock with Minecraft's chunk loading system, rather than a direct conflict with another specific mod. The faulty logic is enabled by the "PL-Like Swet Behavior"
config option.
Additional Context/Information
This issue was discovered on a large modpack, but the crash log stack trace points directly to the Swet.inRadiusOfBanner
method as the source of the deadlock.
Workaround: The crash can be completely avoided by setting "PL-Like Swet Behavior" = false
in the aether_redux_common.toml
config file. This suggests the issue is isolated to that specific feature.
Make sure to confirm these as well before submitting the report:
- The issue persists on the latest version of the mod.
- All version numbers are properly recorded, no instances of ‘latest’
- All details are reported clearly and concisely
- This issue is not a duplicate of another issue
- If the issue is a modpack-related issue, it has been reported to the modpack devs as well