Chunky (Bukkit)

Chunky (Bukkit)

20.6k Downloads

Crash conflict with EssentialAddons Fake Player reload on restart command

AspieGamer13 opened this issue ยท 10 comments

commented

Chunky causes an issue with EssentialAddons "reloadFakePlayers" rule on server restart. Error originally reported to EssentialAddons, solution determined to be:

They would just need to change line 128 in ChunkyFabric.java from:

.requires(serverCommandSource -> chunky.getCommands().containsKey(CommandLiteral.BORDER))

to this:

.requires(serverCommandSource -> chunky != null && chunky.getCommands().containsKey(CommandLiteral.BORDER))

Game version: 1.19

commented

Actually I don't need it anymore, I think I see what's going on here.

Took another look at the crash log you had, and it looks like in your version of the EssentialAddons mod, it tries to load the players before the server has started. This is non-vanilla behavior. This looks to have been fixed in Super-Santa/EssentialAddons@a46bdf2.

The issue should be fixed if you update EssentialAddons, however I have applied the suggested fix on my end as there's no real harm in it, and hopefully it avoids other potential permission-related issues on startup, if other mods decide to do something similar.

commented

As always you can get development builds of Chunky from Github Actions or CodeMC.

commented

Hi, thanks for reporting this problem! Do you have a link to the mod and issue/discussion with the EssentialAddons developers you are referring to? I wasn't able to find it with a quick google search, and I'd like to verify that the fix here is the correct one given that this seems to imply that something weird is going on with the order of these events being fired.

commented

What happened was first an auto restart of the server overnight after I had left my cam account afking (summoned in by carpet's player command) and on restart, the server crashed (reload fake players brings players loaded from carpet's player command back on server restarts). When I got to my PC the next day to check the production of my afking, I found it was offline. Attempting to restart caused the crash again. After looking at the logs, I guessed it was the player being logged on and disabled that option from the config which let the server restart.

Carpet Mod (for the player command): https://github.com/gnembon/fabric-carpet/releases
EssentialAddons Mod (for the reloadFakePlayers command): https://github.com/Super-Santa/EssentialAddons/releases

To recreate, you should only need to summon a fake player to a server (/player <name> spawn, default command permission ops), set EssentialAddons reloadFakePlayers to true & default to true, restart the server

All of this is also assuming that there is either no issue or the same issue with the command reloadFakePlayerActions

commented

crash-2022-10-02_16.04.46-server.txt
crash-2022-10-02_16.25.50-server.txt
latest.log

The two crash logs and the latest log (successful restart, for the mod list) after disabling the "reloadFakePlayers" rule

There wasn't much conversation about the issue. I posted my problem and the logs, was told there wasn't much that could be done on that mods end, and the best course was to file a report here. I did so from my phone, so I didn't have the files to attatch. The conversation was in their discord's help forum.

commented

That's correct, there isn't anything they would be able to do about this. I would like to figure out why this is being caused though, would you be able to link to the mod and explain how you managed to get this issue to occur?

commented

I'm running into a strange issue where it seems like EssentialAddons is attempting to log in the fake player when the server shuts down instead of on startup, which makes this difficult to replicate.

[15:55:30] [Server thread/INFO]: Done (3.926s)! For help, type "help"
[15:55:40] [User Authenticator #1/INFO]: UUID of player pop4959 is a806bad6-4b60-47dd-8048-6a4945125726
[15:55:40] [Server thread/INFO]: pop4959[/127.0.0.1:64872] logged in with entity id 196 at (204.9820307264648, 86.0, 3.2839420780271715)
[15:55:41] [Server thread/INFO]: pop4959 joined the game
[15:58:22] [Server thread/INFO]: Stopping the server
[15:58:22] [Server thread/INFO]: Alex[local] logged in with entity id 638 at (203.30339598627964, 87.0, 3.7295052483595423)
[15:58:22] [Server thread/WARN]: User ec561538-f3fd-461d-aff5-086b22154bce - Alex doesn't currently have data pre-loaded - denying login.
[15:58:22] [Server thread/INFO]: Alex joined the game
[15:58:22] [Server thread/INFO]: Starting shutdown process...
[15:58:22] [Server thread/INFO]: Closing storage...
[15:58:22] [Server thread/INFO]: Goodbye!
[15:58:22] [Server thread/INFO]: Stopping server
[15:58:22] [Server thread/INFO]: Saving players
[15:58:22] [Server thread/INFO]: pop4959 lost connection: Server closed
[15:58:22] [Server thread/INFO]: pop4959 left the game
[15:58:22] [Server thread/INFO]: Saving worlds
[15:58:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[15:58:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[15:58:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[15:58:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[15:58:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[15:58:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[15:58:23] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
commented

I just removed your mod and re-enabled the EssentialAddon rule to test on my server and I didn't have anything weird going on, plus the server successfully restarted (this is with a fake player)

2022-10-02-4.log <- The latest log though shutdown already submitted
latest (1).log <- The new latest log

commented

Do you have a log of it with the crash?

commented

Also if it's any easier, you can join the chunky channels in the Discord server as it may be easier to troubleshoot there rather than Github.