El servidor se reinicia o se cae solo

Un servidor que se cae o se reinicia solo es frustrante. Esta guía te ayuda a encontrar la causa por orden: de lo más habitual a lo más raro.

Paso 1: lee el log y el crash report

  • En Consola mira los últimos mensajes antes del reinicio, o abre logs/latest.log y ve al final: el error está justo antes del mensaje de apagado.
  • Si hay un archivo en crash-reports/ (crash-AAAA-MM-DD_HH.MM.SS-server.txt), léelo. Fíjate en la línea de la excepción y en el *stack trace* que la sigue: el nombre del paquete suele indicar el plugin (com.sk89q.worldedit → WorldEdit).
  • Palabras clave: ERROR, FATAL, Exception, OutOfMemoryError, Watchdog, Killed.

Causa: OutOfMemoryError

java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: GC overhead limit exceeded

Java se quedó sin la memoria que tenía asignada.

  1. Sube la RAM asignada en Inicio (-Xmx), dejando un 10-15 % libre respecto a tu plan. Si el plan se queda corto, mira la calculadora.
  2. Busca una fuga de memoria. Si el servidor va bien durante horas y luego cae, probablemente hay un plugin que va acumulando memoria. Instala spark y ejecuta de vez en cuando /spark heapsummary: verás qué clases crecen sin parar.
  3. Revisa las flags de Aikar y que -Xms y -Xmx sean iguales.

Más contexto en la guía Arreglar OutOfMemoryError: Java heap space.

Causa: Watchdog (el servidor se queda «colgado»)

[WARN] A single server tick took 60.00 seconds (should be max 0.05)
[FATAL] The server has stopped responding! This is a crash report.

Un tick tardó demasiado (lag extremo o un bucle infinito en un plugin) y el *watchdog* cerró el servidor para que no quedara colgado. Para encontrar el responsable:

  1. Instala spark y ejecuta /spark profiler start cuando empiece el lag; para con /spark profiler stop.
  2. El informe muestra qué método o plugin bloquea el tick principal.
Causa habitualQué vesSolución
Plugin con bucle infinitoEl mismo método repetido en el stack traceActualízalo o desinstálalo
Demasiadas entidadesEl tick de entidades al tope del perfilBaja los límites de mobs
Disco lentoGuardado o carga de chunks al topePregenera el mapa
Redstone enormeTicks de bloques al topeRevisa esas granjas
Consultas síncronas a base de datosLlamadas MySQL en el tick principalActualiza el plugin a una versión asíncrona

Existe un tiempo máximo antes de que el watchdog actúe (timeout-time en spigot.yml, 60 s por defecto). Subirlo no arregla nada: solo retrasa el cierre. No lo hagas salvo como medida temporal mientras investigas.

Causa: un plugin falla

[SEVERE] Could not pass event ... to PluginX v1.2.3
java.lang.NullPointerException
    at com.pluginx.ClaseX.metodo(ClaseX.java:123)
  1. Mira el stack trace: el nombre del paquete suele indicar el plugin.
  2. Si no está claro, para el servidor y renombra los .jar de uno en uno a .jar.disabled (empezando por los más recientes). Cuando deje de fallar, el último que quitaste es el culpable.
  3. Actualiza el plugin; si no hay versión nueva, avisa a su autor o busca una alternativa mantenida.

Causa: un reinicio programado

Si el servidor «se reinicia solo» sin ningún error, revisa Tareas: puede haber una tarea programada con una acción de reinicio.

Causa: el sistema cierra el proceso por memoria

Si el log se corta de golpe, sin ningún error, el sistema pudo cerrar el proceso por quedarse sin memoria (no el *heap* de Java, sino la memoria total). Es raro, pero pasa si -Xmx es casi igual a la RAM de tu plan. Baja -Xmx para dejar un 10-15 % libre; si sigue, escríbenos y lo miramos desde el nodo.

Lista de comprobación

  • ¿Hay un crash report en crash-reports/? Léelo.
  • ¿Aparece OutOfMemoryError? Más RAM o buscar una fuga.
  • ¿Aparece Watchdog? Usa spark.
  • ¿Sale el nombre de un plugin en el error? Actualízalo o quítalo.
  • ¿El log se corta sin error? Baja -Xmx y avísanos.
  • ¿Se reinicia a horas fijas? Mira Tareas.

Herramientas útiles

HerramientaPara qué
sparkPerfiles de rendimiento y memoria
mclo.gsSubir logs para compartirlos
Timings de PaperAnálisis de timings (versiones antiguas de Paper)

Si no encuentras la causa, sigue Por dónde empezar y escríbenos con el log completo.