Application RemoteToolkit - Restarts + crash detection + auto saves + remote console!

Discussion in 'Bukkit Tools' started by drdanick, Jan 15, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    Minecraft RemoteToolkit
    -Less downtime, more fun for your players, more power to you!

    Are you a Minecraft server administrator? Do you value up-time and stability? Do you fancy the ability to remotely control your server, both in-game and out of game, in a myriad of useful ways from a plethora of different devices?
    If you answered yes to any of the above, then the Minecraft RemoteToolkit is for you!

    What the Minecraft RemoteToolkit Plugin and Wrapper do for you:
    • Provides almost perfect server uptime with no need for action from an owner/administrator!
    • Have your server save and restart at any time period with configurable restart warnings!
    • The Toolkit guarantees a restart within the set restart period, even if your server crashes, becomes unresponsive, or encounters a "SEVERE" exception!
    • Remotely control every function of the Toolkit, even from your smart phone!
    • Full remote console access via telnet with support for multiple terminal types!
    • Telnet daemon conforms to current Telnet related RFCs!
    • Customizable alert messages!
    • Fully extendable though 3rd party modules!
    • Full feature set works with most craftbukkit builds!
    • Most features work with any Minecraft server variation, even vanilla!
    • Telnet can be disabled!
    For server administrators
    Download - Release 10, Alpha 15.3 [CB 1.7.2-R0.2] (wget friendly)
    Instructions & Documentation

    For developers
    UDP API REV 8 | Documentation
    Module API | Coming soon!

    For everyone
    Official IRC channel
    #remotetoolkit @

    "Help! I've downloaded it, but I do not know how to get it working!"
    Stop! Before you give up or ask for help, make sure you have read the step-by-step installation instructions on the wiki page. If you are still having problems, please do not be hesitant to post a request for help on this thread or in the IRC channel - no matter how simple your problem seems.


    Any donation would be very much appreciated. I'm but a poor University student, and I sacrifice quite a lot of unpaid time to keep the Toolkit updates and support flowing.

    Thank you to the following who have chosen to support the Toolkit through a donation:
    Deren909, marshall007, Vittek, clanslots, meee, KyneSilverhide, szoller, hungoverfurball, Lama_0, Viet, acc1dent, joby890, Liger_XT5
    Last edited: May 6, 2017
  2. Offline


    Ah, there's the problem.
    You didn't disable jline when you overrided the process arguments. Actually, in your case, it would have been simpler to specify all your extra flags under extra-runtime-arguments.
    Nevertheless, if you really want to override the standard arguments, use the following config:

    #Minecraft Remote Toolkit Properties File
    #Sat Jun 04 16:32:07 CEST 2011
    overridden-process-arguments=java -Djline.terminal\=jline.UnsupportedTerminal -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseAdaptiveGCBoundary -XX:MaxGCPauseMillis=500 -XX:-UseGCOverheadLimit -XX:SurvivorRatio=16 -Xnoclassgc -XX:UseSSE=3 -XX:ParallelGCThreads=3 -Xincgc -Xmx2024M -jar craftbukkit.jar
    Also, on a related note, this is why the console has not been behaving as you have expected. The console will work exactly as what you are used to, minus jline (which will be difficult to implement, but I do plan on implementing it).
    yottabyte likes this.
  3. Offline


    Thanks, got it working! :)
    drdanick likes this.
  4. Offline



    Release 10 Alpha 10
    -Added the option to schedule a full wrapper shutdown, including the ability to reschedule/cancel them from the console.
    -Added the option to have the server force a save-all on a restart/hold/shutdown.
    -Added the ability to see time remaining for a restart/shutdown from the console.
    -Heartbeat responses from the plugin are no longer logged.

    Still to come
    -The ability to reload the Toolkit configuration without restarting the Toolkit.
    -An android application
    -General message broadcast scheduling (particularly useful with vanilla servers)
    -Map backups integrated into wrapper (delayed to figure out a decent way of working with the new chunk system)
    -Module documentation. Developers can PM me in the meantime for some example code.
    -Major code refactor.
  5. Offline


    I love the plugin but I can't connect to the server through anything other than local host. I can't use the remote commands and I can't connect through the IP address. I could be a giant derp and be doing something stupid. This is my and what happens when I run rtoolkit.bat

    #Minecraft Remote Toolkit Properties File
    #Sun Jun 05 00:25:53 EDT 2011

    Minecraft Remote Toolkit R10 Alpha 10.03
    Loading toolkit properties...Done.
    Loading toolkit modules...Done.
    Wrapper is running on: Windows 7 6.1 amd64
    ERROR: Invalid shutdown time!
    Starting wrapper...
    Starting UDP listen server on port 25561
    Jun 5, 2011 12:09:20 PM run
    INFO: Listening to Port 25,561 with a connectivity queue size of 5.
    12:09:20 [INFO] Starting minecraft server version Beta 1.6.6
    12:09:20 [INFO] Loading properties
    12:09:20 [INFO] Starting Minecraft server on *:25565
    12:09:20 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-766-
    g3fc0460-b818jnks (MC: 1.6.6)
    12:09:20 [INFO] Preparing level "Error 404"
    12:09:20 [INFO] Preparing start region for level 0
    12:09:21 [INFO] Preparing start region for level 1
    12:09:21 [INFO] [Permissions] (Yeti) was initialized.
    12:09:21 [INFO] [Permissions] (Yeti) was initialized.
    12:09:21 [INFO] BlocksOnGlass version 0.32 is enabled!
    12:09:21 [INFO] [BlocksOnGlass] Permission system detected.
    12:09:21 [INFO] Loaded Essentials build 2.3.1 by Zenexer, ementalo, Aelux, Brett
    flan, KimKandor, snowleo, ceulemans and Xeology
    12:09:21 [INFO] Loaded EssentialsChat build 2.3.1 by Zenexer, ementalo, Aelux, B
    rettflan, KimKandor, snowleo, ceulemans and Xeology
    12:09:21 [INFO] Loaded EssentialsGeoIP build 2.3.1 by Zenexer, ementalo, Aelux,
    Brettflan, KimKandor, snowleo, ceulemans and Xeology
    12:09:21 [INFO] This product includes GeoLite data created by MaxMind, available
    12:09:21 [INFO] GroupManager - INFO - Scheduled Data Saving is set for every 10
    12:09:21 [INFO] GroupManager version 1.0(alpha-5) is enabled!
    12:09:21 [INFO] Loaded EssentialsProtect build 2.3.1 by Zenexer, ementalo, Aelux
    , Brettflan, KimKandor, snowleo, ceulemans and Xeology
    12:09:21 [INFO] Loaded EssentialsSpawn build 2.3.1 by Zenexer, ementalo, Aelux,
    Brettflan, KimKandor, snowleo, ceulemans and Xeology
    12:09:21 [INFO] Memory max: 1029046272 bytes
    12:09:21 [INFO] Memory total: 1029046272 bytes
    12:09:21 [INFO] Remote Toolkit Plugin V0.45b enabled!
    12:09:21 [INFO] [Permissions] version [3.1.1] (Yeti) loaded
    12:09:21 [INFO] RocketBoots v0.3 enabled!
    12:09:21 [INFO] [Permissions] version [2.7.2] (Yeti) loaded
    12:09:21 [INFO] Done (0.131s)! For help, type "help" or "?"

    It looked to me like a port forwarding issue but I checked and ports 25561-25565 are opened and directed to the computer I run the server from. If I run the norm,all bukkit server with out remote toolkit everything if fine. The OS is win 7 64 bit.
  6. Offline


    Try downloading it again. The IDE I switched to was causing some serious issues.
    If it still doesn't work, can you try connecting to it on a different computer on your local network?
  7. Offline


    Didnt think i seen this asked although there is 31 pages for me to of missed things. I had this in before, then stopped using it. when things settled down.
    I occasionally get the Read error spamming thru the console and no one able to connect. Will this detect this long stream of read timed out errors that cause no one to be able to log in. Sadly the run of errors dont even show up in the server log. Hopefully this can help.
    Thanks for keeping this plugin going awesome tool.
  8. Offline


    welp. When I reinstalled the toolkit it deleted all of the other plugins on its own even though just dragged and dropped the MinecraftRKitPlugin into the folder. i changed the wrapper.props to mach my craftbukkit name and ran it. I still cont connect on anycomputer.
  9. Offline


    I didn't notice anywhere mentioned describing the settings in detail, I.E. what and how heartbeats work, how rescheduling works, etc. It showed a 4 hour I believe scheduled restart even though I have scheduled restarts turned off... Its supposed to trigger at 1 hour, I set it to 1 hour and 1 second there is no trigger, maybe because it is off? Thanks :)
  10. Offline


    That depends on whether the server becomes unresponsive or not. There are, by default, two non-scheduled conditions that will result in an automatic server restart:
    1) The server process terminates.
    2) The server becomes unresponsive for 5 (default) minutes.

    I have not experienced that issue before, but with any luck the toolkit will force a restart.

    Are you using any firewalls? Try disabling Windows Firewall temporarily.

    I agree, there should be more detailed specifications up somewhere. Alas, my University semester finals are in a week so I can't do anything until then. I'll briefly explain heartbeats (assuming the default settings):

    -Every minute, the toolkit sends a command to the server's console.
    -This command is picked up by the plugin, and a response is sent back through the standard output stream of the server.

    The toolkit will expect at least one response every 5 minutes. If it did not receive any, it will first try to gracefully restart the server with the 'stop' command (this is in case of error), then after a minute it will force the server to stop.

    As for rescheduling, all it does is alter the time at which the next restart is due to occur. For instance, if you set the server to restart every 3 hours, and after two hours you rescheduled the time to 4h, the server would restart exactly 4 hours after you entered the reschedule command.
    Now, after the restart has occurred, the regular 3 hour restarts will resume. It is very important to note that the reschedule command will not alter the overall frequency of restarts, only the delay before the next restart.

    Now, as for your issue, how exactly did you disable the scheduled restarts? Restarts can only be totally disabled by setting the server-restart-delay key in to 0. Can I have a look at the body of your wrapper configuration file?
  11. Offline


    I should have known Windows Firewall would be the issue. Piece of junk. Thanks for the help.
  12. Offline


    I wouldn't say that its malfunctioning, but I have gotten this plugin/wrapper because I've been experiencing java.lang.OutOfMemoryError errors, and I'm not sure if this will restart the server. After the error goes on, no one can connect. The server is still working but just not active. After this point, I have to restart with /stop then it restarts on its own.
    My point: Is there any way you could make a option that allows the toolkit to restart server when it finds or detects the: java.lang.OutOfMemoryError ??? I don't think your toolkit will restart it after that? I tried testing it a couple of times by crashing server, and I couldnt get it to work.
    A reply on whats going on would be great!
  13. Offline


    i don't have ssh access to the server so if it gets the java.lang.OutOfMemoryError and im not near the server box (hosted at work) the server is down.
    temp solution i have currently is to have the server restart every morning automatically at 4am and allocating 6gb to the MC server so there's no issues (seems if alot of players leave/join constantly it increases the mem usage rapidly)
    so i either have to catch it when blocks start re-appearing or wait till 4am.

    being able to catch that bloody error would be awsome :)
  14. Offline


    My console is getting spammed with this error at seemingly random intervals:


    My Minecraft server is running on the default port (25565), so there isn't a conflict there. This has occurred with 1.5 and 1.6. I'm currently running Bukkit 818. It has happened since I installed it initially, I think on Bukkit 798.

    EDIT: The error message for anyone who's searching:

    Starting UDP listen server on port 25562
    UDP Socket exception: Address already in use: Cannot bind
  15. Offline


    broken image...
    EDIT: nm
  16. Offline


    You rock, just updated to the latest version, running build 839, everything seems to be working fine! Grats on a great plugin woot!

    When are you adding SSH access for remote connections? :)

    You can use the putty libs! :p
  17. Offline


    have you checked to see if any other processes have 25562 bound? have you tried changing the port to say 25560?
  18. Offline


    If I recall, it happens with other port numbers, because I had originally set it to 25564.

    It's an intermittent problem. It will be fine for hours and then I'll get a "UDP Socket exception: socket closed". After it drops, I'll get a spam of the message above, and then it will eventually succeed and stop spamming the console.

    Is there a way to disable the UDP remote control? I have console access from my phone, so I really don't need to be able to control the server via remote toolkit. I'm mainly using it for the scheduled reboots/saves.
  19. Offline



    I will definitely look into it. If you could give me some sample console output when the error is printed, that'd help a lot.

    How long does it usually take for this problem to subside? I wrote the UDP server a while ago, and I do not believe I imposed a delay upon refreshing the server. My best guess with what's happening is that upon refreshing the server, it tries to bind to the port before the old server instance unbinds itself.
    The UDP server acts as the remote API which bridges other tools/plugins with the wrapper. Due to it's significance, I am somewhat reluctant to allow it to be disabled completely, though I may add the option to (possibly in the next version).

    I have been working on SSH support for some time. So far, if everything goes well, it is slated to be included with release 11 (the feature set of release 10 is more or less as it is now).
  20. Offline


    I'm not sure exactly how long it is, because the error isn't timestamped. I've seen as little at 15 seconds before it can grab the port again.

    If the UDP is acting as an API, I don't necessarily want to disable it. I didn't realize how integrated the remote functionality is.

    I'm running Java 1.6.0_24 on Server 2008 R2 (x64), if that helps.
  21. Offline


    this is a tad old (haven't had the issue since 1.5_2)
    straight from the server.log
    2011-05-08 17:15:13 [SEVERE] java.lang.OutOfMemoryError: GC overhead limit exceeded
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.Packet51MapChunk.<init>(SourceFile:32)
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.EntityPlayer.a(
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.NetworkManager.a(
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    2011-05-08 17:15:13 [SEVERE]     at net.minecraft.server.MinecraftServer.h(
    2011-05-08 17:15:13 [SEVERE]     at
    2011-05-08 17:15:13 [SEVERE]     at
    2011-05-08 17:15:13 [SEVERE] Unexpected exception
    java.lang.OutOfMemoryError: GC overhead limit exceeded
        at net.minecraft.server.Packet51MapChunk.<init>(SourceFile:32)
        at net.minecraft.server.EntityPlayer.a(
        at net.minecraft.server.NetServerHandler.a(
        at net.minecraft.server.Packet10Flying.a(SourceFile:126)
        at net.minecraft.server.NetworkManager.a(
        at net.minecraft.server.NetServerHandler.a(
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(
    2011-05-08 17:16:04 [INFO] Read timed out
    2011-05-08 17:16:04 [INFO] Read timed out
    2011-05-08 17:16:12 [INFO] Read timed out
    2011-05-08 17:16:36 [INFO] Read timed out
    2011-05-08 17:17:03 [INFO] Read timed out
    2011-05-08 17:17:06 [INFO] Read timed out
    2011-05-08 17:19:34 [INFO] Connection reset
    2011-05-08 17:20:43 [INFO] Read timed out
    2011-05-08 17:22:11 [INFO] Read timed out
    2011-05-08 17:27:53 [INFO] Read timed out
    2011-05-08 17:32:36 [INFO] Read timed out
    2011-05-08 17:34:24 [INFO] Read timed out
    2011-05-08 17:35:43 [INFO] Read timed out
    2011-05-08 17:36:03 [INFO] Connection reset
    2011-05-08 17:37:12 [INFO] Read timed out
    2011-05-08 17:42:08 [INFO] Read timed out
    2011-05-08 17:47:57 [INFO] Read timed out
    2011-05-08 18:08:53 [INFO] Read timed out
    2011-05-08 18:09:32 [INFO] Read timed out
    2011-05-08 18:09:45 [INFO] Read timed out
    2011-05-08 18:27:07 [INFO] Connection reset
    2011-05-08 19:11:14 [INFO] Connection reset
    2011-05-08 19:11:53 [INFO] Read timed out
    2011-05-08 19:14:27 [INFO] Read timed out
    2011-05-08 19:16:21 [INFO] Read timed out
    2011-05-08 19:20:12 [INFO] Read timed out
    2011-05-08 19:31:07 [INFO] Read timed out
    2011-05-08 19:53:42 [INFO] Read timed out
    2011-05-08 20:08:02 [INFO] Read timed out
    2011-05-08 20:08:40 [INFO] Read timed out
    2011-05-08 20:22:45 [INFO] Read timed out
    2011-05-08 20:26:06 [INFO] Read timed out
    2011-05-08 20:40:08 [INFO] Read timed out
    2011-05-08 20:44:30 [INFO] Read timed out
    2011-05-08 20:55:46 [INFO] Read timed out
    2011-05-08 20:59:42 [INFO] Read timed out
    2011-05-08 21:10:48 [INFO] Read timed out
    2011-05-08 21:12:13 [INFO] Read timed out
    2011-05-08 21:15:22 [INFO] Read timed out
    2011-05-08 21:22:16 [INFO] Read timed out
    2011-05-08 21:22:30 [INFO] Connection reset
    2011-05-08 21:33:30 [INFO] Read timed out
    2011-05-08 22:05:39 [INFO] Read timed out
    2011-05-08 22:35:05 [INFO] Read timed out
    2011-05-09 08:06:31 [INFO] Read timed out
    2011-05-09 08:12:11 [INFO] Read timed out
    2011-05-09 08:40:32 [INFO] Read timed out
    as for what's being actually output on the console, it's just generally: java.lang.OutOfMemoryError
    may be more of a help
  22. Offline


    For some reason (while running as admin) when I type .hold in console it says the server is stopping or whatever but then nothing happens. If i type .unhold it says the server is already running. Any suggestions?

    Also doing .restart just does nothing.
  23. Offline


    I am not to sure if this is already added or even possible. But can you make it so if you can a out of memory error It will restart?
  24. Offline


    Can you post the body of

    It has been suggested, and I am going to add it. If you could give me console output of the error occurring, it would help. I need to make sure my algorithm that parses console output is looking for the correct String.
  25. Offline


    Well the line starts with

    java.lang.OutOfMemoryError: Java heap space

    That is one line because the error under it can vary.

    Also any ETA on ssh?
  26. Offline


    @Mikecom32 I have updated the toolkit with a compromise that should lower the number of errors printed when the UDP server refresh fails.

    I will need the entire line, including the log level as it appears in the console. It does actually help if I can see an exact copy of what's printed. I need to be certain about what sort of string the Toolkit looks for.

    As for SSH, it will not be added before the end of the month. I plan to work on release 11 after my University semester final exams.
  27. Offline


    Well there is this one

    [SEVERE] java.lang.OutOfMemoryError: Java heap space
    and sometimes its just

    java.lang.OutOfMemoryError: Java heap space
    Also sometimes not all the time. The forcing save hangs and freezes the server for like 30 secs. Is it possible to make saving in a different thread so it doesn't affect the players in the server.
  28. Offline


    This has been working well for me for a few days now until today, for some reason on restarts and crashes now the old thread stays running, and a new one is spawned, causing the one in the console to give port already opened errors. Any ideas why this could of just started happening?
  29. Offline


    I just installed your plugin for my server and I've run into an issue using it. There are a few things that seem like they might be a problem:
    • During wrapper startup, it tells me that I have an invalid shutdown time even though the shutdown time is set to 0 to disable it.
    • After the craftbukkit server has been started by the wrapper, I get an unknown console command error once every 60 seconds.
    • When I tried connecting from another computer on my local network using PuTTY it gave me an error saying that the connection was closed by the remote host followed by another error saying the same thing in slightly different words.
    • When attempting to give the wrapper a command from the same computer via a web browser, I get no response after entering all the information and clicking Submit.
    I really like the idea of having timed auto-saves and restarts, seeing as how I've already lost a great deal of progress on my server once due to the Machine running the server freezing and corrupting the world files.

    My looks like this:
    #Minecraft Remote Toolkit Properties File
    #Sat Jun 11 07:21:27 EDT 2011

    My server machine specs are as follows:
    OS: Windows XP Professional SP3​
    CPU: Pentium D 3.40 GHz​
    RAM: 0.99 GB (no idea why it says .99 >.>)​
  30. Offline


    Getting rollbacks svery single time now with a save-all forced on restarts. My saves can take 10-25 seconds. Do you have it stop before these saves are done? Inventories are getting saved but not chests or blocks... (This enables duping)

    Could you add a variable for us to choose the amount of time that the server is stopped after the save-all is forced? This would allow each server to optimize it's own shut downs and prevent this type of thing.

    I'm going to have to do a full economy wipe because of all the duping that has been introduced to the game because of this.
  31. Offline


    I apologize for the trouble this has caused. The toolkit will now continue with the shutdown after either it detects that the save is completed, or 70 seconds have passed (which is probably ample). I have updated the download link with the new version. Please tell me if there are any issues with it.

    The toolkit is not part of the process as the server. It has nothing to do with how saves are performed, so this is impossible.

    What happens if you issue the stop command in the console? Do you get the same issue?

    Ignore that error, it is a bug.

    If you are getting that error every minute, it means that you did not place the toolkit plugin jar in the plugins directory of your minecraft server.

    If you are getting remote connection issues, make sure port 25561 is open to your computer (TCP AND UDP).
    Try using the bundled UDP client on the same computer that your server is hosted on. Do you get any issues using that?
Thread Status:
Not open for further replies.

Share This Page