Analyzing Crashes

Jun 30, 2015
Analyzing Crashes
  • Analyzing Crashes

    Reading the error log to find out what's wrong





    World Issues

    Stack overflows
    These are usually notated by “java.lang.StackOverflowError” at the beginning of the error, most easily identified by the Minecraft default crash files. usually consists of an error being repeated several times over.

    Pastebin - http://pastebin.com/SkGufF5b

    Chunk corruption
    Begins with several different errors eg “java.io.UTFDataFormatException: malformed input around byte 111”,”java.io.EOFException: Unexpected end of ZLIB input stream”. Easiest to find in the default Minecraft server crash files. Usually notates Section, BlockLight or Blocks in the server details after initial error.

    Pastebin - http://pastebin.com/BauAReDH

    Generation issues
    Currently, there are two generation bugs within Minecraft as of 1.7. These are " java.lang.IllegalArgumentException: n must be positive " and “java.lang.RuntimeException: Already decorating!!”. These are known bugs without a fix at the moment.

    Pastebins - http://pastebin.com/ekhrGUhn http://pastebin.com/u9bXT1EQ

    Session Lock Damage
    Caused by either corruption, deletion or forced change to the session.lock file, or world files, while the server is running. “java.lang.RuntimeException: Failed to check session lock, aborting”, “java.io.FileNotFoundException: .\world\session.lock (The requested operation cannot be performed on a file with a user-mapped section open)”. Found in both the server.log and Minecraft crash files.

    Fix is to delete the session.lock files within your world folders while the server is down and start it again.

    Pastebin - http://pastebin.com/sp2tkMt9



    Reading Plugin Issues
    Generic Crashes
    Every time your server crashes (That isn’t caused by a jvm issues) Spigot will dump a stack trace into your log. 90% of the time, it will not have to generate a default minecraft crash file. Most of the time, you can find the plugin that caused the issues in the stack trace for the “Server thread” dump.

    Most of the time, the fix for this is to update the plugin, or remove it and wait for a fix.

    Once you find the Server Thread, have a look in it for lines that do not reference:
    • Java
    • Apache
    • Sun
    • Netty
    • Spigot
    • Net.minecraft.server
    • Bukkit
    • Google
    • Yaml/SnakeYaml
    Once you find a line that doesn’t contain one of the above, it’s likely you have found the plugin that is causing you issues. easiest way to explain this is through examples.

    Here’s a Server thread from a crash, try work out what caused it. http://pastebin.com/8PPgKQfC
    Answer:
    Multiverse Inventories - due to several lines containing com.onarandombox.multiverseinventories, On closer inspection of the error, you can see it was caused my Multiverse Inventories trying to update a player’s profile after they left the game.

    If you see an error such as this
    Code (Text):
    [WARNING] [Server] The main thread failed to respond after 10 seconds
    [WARNING] [Server] Probable Plugin causes: 'iConomy, Vault and ChestShop'
    Then it is made clear for you that iConomy, Vault or ChestShop are responsible for the crash in question.

    Not all crashes are due to the plugin though, some are at the fault of you or your players. For example, in this pastebin - http://pastebin.com/gtfELcqp - the crash was caused by an extremely large WorldEdit (Using the //set command, see line 10) causing your server to hit your timeout limit.

    If you see an error similar to
    Code (Text):
    [SEVERE] Could not pass event X to PluginY
    org.bukkit.event.EventException
    then PluginY is at cause, if the plugin doesn’t have a fix available, you should report it to the plugin developer.

    Metrics and version checkers can also cause crashes on your server. As we can see in this crash - http://pastebin.com/S3xEaA62 - there are several references to using a connection to an outside server, and on line 18/19 we can see that this crash was caused by ModReq, most likely due to the connection timing out. To fix this, check the relevant plugins configuration file and disable automated update systems, or in the case of Metrics, goto spigotinstallaltion/Plugins/PluginMetrics/ and disable it in the config file there. Here is an example of a metrics crash. http://pastebin.com/2L7j7PSW



    Spigot/Bukkit Issues

    File Permission Errors
    Due to file permission issues, Spigot may not be able to generate several core files sure as the log file, config files and metrics folder. This can easily be fixed on linux by going to your jar directory and executing chmod 700 on the jar and 500 for all other files. Ensure that the file has the correct owner.

    Typical Error as a result of this issue http://pastebin.com/ttJdNaAU


    PermGen Space
    With the 1.7 update, Mojang added several libraries to Minecraft, causing the amount of class files within the jar to jump significantly. As a result, more permgen space is required to stably run the server. You can see a guide on how to fix this here.


    Other
    Hacked Entities/Items
    Due to the unlimited power of creative mode, using hacked clients players are able to spawn in items that can crash your server. The easiest to notice is “java.lang.IllegalArgumentException: n must be positive”, which is caused by an entity or player which has an item/piece of armour that has a negative enchantment on it. Every time this player joins or the area is loaded, the server will crash. Attempt to remove the entity/player’s inventory to prevent the crash.

    Pastebin - http://pastebin.com/CHv4qkr5

    Players are also able to create mob eggs with insanely long names, which cause any clients within the vicinity to crash as packets are too large. Only fix for this is to remove the entity.


    MultiCraft Damaging log files
    Multicraft has an inbuilt ‘feature’ that can cut off your log file during crashes. If you see the line
    [Multicraft] Skipped x lines due to rate limit (y/s)

    it is likely you will not be able to successfully analyse your crash. Increase the limit to an extremely large number in order to prevent this feature from culling your logs - try and contact your host if you do not have access.
  • Loading...
  • Loading...