|
Post by xPhoenixXx on Nov 11, 2013 9:27:15 GMT 10
I am posting this globally cause I don't want any potential staff current or future or those who plan to run their own server one day missing this.
Never Never Ever Ever EVER use the /reload command.
EVER.
We run multiverse, permissions, lockette/security and terrain generators. This command is VERY DANGEROUS on any server running ANYTHING BUT bukkit and essentials.
What does reload do?
It tells every plugin "hey I am the server, and I am shutting down"
The plugins go oh ok. I will save my data and halt.
Then the server goes.. sorry I was kidding I am not really shutting down - you should start again and load your data fresh.
To which the plugins, unless specifically coded to work otherwise say..
.. Nothing.. Because they have now halted running. Note I say "halted" here not unloaded. Because the plugins remain in memory in a stopped state. Even if they do restart, they will load a new instance, and require /additional/ memory.
See now why it is dangerous?
Here is a made up example - A server with 4gb of ram, that requires 2.2 GB for the plugins, reloading requires another 2.2gb - it will now require 4.4GB of ram, and that is before the players data loads. 4.4 > 4gb = crash.
To make things worse, some plugins will restart (having been coded to do so) and get in before the memory runs out... so now we have a bunch of half loaded plugins some which require other plugins, the other plugins not having loaded.
Possible effects (happen at random depending what order the plugins try to reload): Maps files currupt as the generator has unloaded for worlds already already in memory, but players are already in these worlds. Security / Permissions don't load. All players now have build/break access to every part of the world except for a small 15 block radius at spawn. On top of this anything they grief is now not logged. Even if the plugins come back up, for the 30 seconds or so it takes for them all to restart, every player can break blocks anywhere they like. Permissions and other read/write active processes fail to load/save their data properly potentially config files are lost or corrupted. Chests now have pretty signs decorating them that does not prevent a player opening the chest. Server hits the memory limit preventing additional players from joining. Chat / join/quit messages are no longer being written to the server log. Memory leak, and rotating error loops. CPU is at 100% and memory is spooling into the swap file at about 16mb an hour
If in the process of debugging you are forced to use it, you should follow the following procedure: 1: Make sure no other players are online 2: run the /gc command to flush the java buffers 3: run /stoplag command to halt non critical processes 4: /mv unload all worlds but the main world 5: run your /reload command, observe whatever debug you were attempting to analyze 6: completely stop the server 7: check running processes to confirm the clean unloading of the java VM 8: check the server log to see if any plugins crashed during the reload, restore config files as necessary on those plugins if they were corrupted 9: relaunch the server from the console 10: confirm all the /mv worlds reloaded correctly, load any showing red 11: confirm the stoplag command reset during the restart, /stoplag -c if it didnt
What is easier? simply stopping and starting the server again, or going through steps 1-11 above?
Long Story short.
Unless you have 100's of GB of ram, don't use reload. You should fully /stop the server and start it again. It is easier and safer.
|
|
|
Post by 空 on Nov 11, 2013 10:12:08 GMT 10
Who's done this because AFAIK not even I would ever do this... the closest I've gotten is /permissions reload back when I was OPing myself.
|
|
|
Post by grimnir on Nov 11, 2013 12:24:14 GMT 10
don't think anyone has to my knowledge. more a general advisory note. even I know to stay away from /reload lol
|
|
|
Post by tangentspy (SaltPepp) on Nov 11, 2013 15:05:00 GMT 10
it was me. Trying to get nicknames to update. Which in the end still didn't update like I hoped. I couldn't remember any of the commands and my internet connection was playing up terribly (web pages failing to load and showing white screen) . The only website that worked was google images not google search so I had to rely on that. Everyone was asking me to do this and that and I just got frustrated when the server crashed. If everyone wasn't asking me to do nicknames over and over again it wouldn't of crashed. All I wanted to do last night was clean up the server not crash it. also I contacted grim to turn the server on again btw.
|
|
|
Post by xPhoenixXx on Nov 12, 2013 10:00:34 GMT 10
Just a point with nicknames, it should only be players that have been promoted or a donator rank, and it should contain part or whole of their real nickname so that tab-completion still works - or when backtracking log files. Only exception to this rule is.. when frankly the players real nickname is rubbish.. lol
Also they get to ask for a change once, changing it on an hourly basis is highly discouraged lol
Generally we preferred to avoid nickname changes after issues in an earlier version, although most of the issues are fixed now, it still makes tab completion and reading server logs very &rh&3H Painfull
|
|
|
Post by tangentspy (SaltPepp) on Nov 12, 2013 14:32:36 GMT 10
thispigplaysmc wanted pig in rainbow, then he wanted Piggy in pink(&d) then Ice_Cream_Man wanted his name at first Ice_Cream_Man in rainbow but it was too long so now his called Ice_Cream in rainbow. These names wouldn't update automatically on my end like they should have but it must of just been server lag. Thats when i did the /reload
|
|
|
Post by tangentspy (SaltPepp) on Nov 12, 2013 14:42:21 GMT 10
Just a point with nicknames, it should only be players that have been promoted or a donator rank, and it should contain part or whole of their real nickname so that tab-completion still works - or when backtracking log files. Only exception to this rule is.. when frankly the players real nickname is rubbish.. lol Also they get to ask for a change once, changing it on an hourly basis is highly discouraged lol Generally we preferred to avoid nickname changes after issues in an earlier version, although most of the issues are fixed now, it still makes tab completion and reading server logs very &rh&3H Painfull There was an essentials configuation which I bumped by accident one day on my server which only sends players full names to the log. In code it would be: pm = pluginmanager.listener("Minecraft"); pm.Log(e.getPlayer.RealName().ToString + "hello there.", high); Remember when I showed you my thundertools plugin for the first time and it was spamming the console because I added to much logging to it. I removed this but I still keept the ingame logging due to console spamming. E.g. If you right-clicked hold your mouse, 1 million lines of log will appear
|
|
|
Post by 空 on Nov 12, 2013 22:50:10 GMT 10
Just because they want nicks doesn't mean they should have it. I'm with phoenix in that only donators should have nicks. Recently I de-nicked 2-3 players who had completely different nicks to their real username, and who were not donators.
|
|