Crash du serveur toutes les nuits

Antho_29

Aventurier
1 Juillet 2019
5
0
1
24
Bonjour, j'ai fait un serveur Minecraft avec PaperMC et toutes les nuits vers environ 2h ou 4h du matin, le serveur plante et essaie de redémarrer. Pouvez-vous me dire d'où cela provient ?

Le log correspondant au serveur est en pièce jointe

Merci d'avance
 

Fichiers joints

Bonjour,

Code:
[04:16:29] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:16:29] [Paper Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
[04:16:29] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:16:30] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:16:30] [Paper Watchdog Thread/ERROR]: The server has stopped responding! This is (probably) not a Paper bug.
[04:16:30] [Paper Watchdog Thread/ERROR]: If you see a plugin in the Server thread dump below, then please report it to that author
[04:16:30] [Paper Watchdog Thread/ERROR]:     *Especially* if it looks like HTTP or MySQL operations are occurring
[04:16:30] [Paper Watchdog Thread/ERROR]: If you see a world save or edit, then it means you did far more than your server can handle at once
[04:16:30] [Paper Watchdog Thread/ERROR]:     If this is the case, consider increasing timeout-time in spigot.yml but note that this will replace the crash with LARGE lag spikes
[04:16:30] [Paper Watchdog Thread/ERROR]: If you are unsure or still think this is a Paper bug, please report this to https://github.com/PaperMC/Paper/issues
[04:16:30] [Paper Watchdog Thread/ERROR]: Be sure to include ALL relevant console errors and Minecraft crash reports
[04:16:30] [Paper Watchdog Thread/ERROR]: Paper version: git-Paper-115 (MC: 1.14.3)
[04:16:30] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:16:30] [Paper Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[04:16:30] [Paper Watchdog Thread/ERROR]: ------------------------------
[04:16:30] [Paper Watchdog Thread/ERROR]: Current Thread: Server thread
[04:16:30] [Paper Watchdog Thread/ERROR]:    PID: 25 | Suspended: false | Native: true | State: RUNNABLE
[04:16:30] [Paper Watchdog Thread/ERROR]:    Stack:
[04:16:30] [Paper Watchdog Thread/ERROR]:        java.io.FileInputStream.open0(Native Method)
[04:16:30] [Paper Watchdog Thread/ERROR]:        java.io.FileInputStream.open(Unknown Source)
[04:16:30] [Paper Watchdog Thread/ERROR]:        java.io.FileInputStream.<init>(Unknown Source)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.WorldNBTStorage.checkSession(WorldNBTStorage.java:156)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.WorldServer.checkSession(WorldServer.java:1467)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.PlayerChunkMap.saveChunk(PlayerChunkMap.java:705)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.PlayerChunkMap.save(PlayerChunkMap.java:311)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.ChunkProviderServer.save(ChunkProviderServer.java:338)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.WorldServer.save(WorldServer.java:772)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1090)
[04:16:30] [Paper Watchdog Thread/ERROR]:        net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:908)
[04:16:30] [Paper Watchdog Thread/ERROR]:        java.lang.Thread.run(Unknown Source)

Le serveur Minecraft doit tourner à 20 ticks/seconde, un tick représentant un appel à toute la logique du jeu (IA des entités, interactions des joueurs, ...)
Un tick doit donc mettre au maximum 0,05 secondes à s'exécuter, s'il prend plus de temps le serveur laggera car il se mettra à jour moins fréquemment.
Un chien de garde (Watchdog) s'exécutant parallèlement au serveur considèrera que si un tick prend plus d'une minute à s'exécuter (soit 1 200x le temps normal), le serveur est planté et irrécupérable, et causera un crash du serveur.

En l’occurrence le serveur n'arrive pas à enregistrer la map dans le temps imparti.
Après comme l'indique PaperBukkit au dessus, c'est que le serveur n'arrive pas à gérer autant de surcharge.

Ça m'étonnerait qu'il y ait beaucoup de connectés à cette heure et ça ne ressemble pas à une faille de sécurité, par contre faudrait comprendre pourquoi il crash dans cet intervalle de temps. Si tu lances le serveur par exemple 2 heures plus tard, le crash est-il aussi décalé ?
Éventuellement ça pourrait être un problème de mémoire (des plugins qui ne se nettoient pas correctement), et que la copie des primitifs force la JVM à aller quémander de la mémoire, ce qui est chronophage. Essaye d'allouer plus de mémoire à ton serveur et de le redémarrer à une heure où personne n'est connecté, style à 4 heures du matin.

Cordialement,
ShE3py.
 
Merci de la réponse ! Effectivement il n'y a personne de connecté à cette heure. Par contre je me souviens qu'avant c'était vers 2h du matin donc ça peut changer..
De plus, je n'ai qu'un seul plugin (AuthMe Reloaded). Je vais le désactiver pour cette nuit et voir si c'est lui qui pose des soucis.
Le serveur tourne sur un Windows Server 2016, avec un Xéon X5650 et 16 Go de RAM, j'ai mis en paramètre -Xms512m et -Xmx2G ça devrait être bon non ?
 
Dernière édition:
J'utilise aussi un paramètre "-d64" pour utiliser la version 64 bits de Java, c'est un problème ?
 
je n'ai qu'un seul plugin (AuthMe Reloaded)
C'est autant plus étrange.

Windows Server 2016, avec un Xéon X5650 et 16 Go de RAM, j'ai mis en paramètre -Xms 512m et -Xmx 3G
Ça devrait convenir pour quelques joueurs, par contre il ne doit pas y avoir d'espaces après les -Xm(s/x) et ceux-ci doivent être présents avant le -jar ; les arguments avant le -jar sont passés à la JVM (machine virtuelle java, en gros Java) et ceux après à l'exécutable (ici, le serveur). Or une fois que l'exécutable est lancé sa mémoire ne peut être modifiée, donc il faut bien que les paramètres de la JVM soient passés à la JVM.

J'utilise aussi un paramètre "-d64" pour utiliser la version 64 bits de Java, c'est un problème ?
Non, c'est ce qu'il faut faire. Les architectures 32 bits sont limités, par exemple le nombre maximal est 2^32-1 (base^digits, -1 car zéro est pris en compte), soit 4 294 967 295. La limite en 64 bits est 18 446 744 073 709 551 615, pas trop mal. C'est ce qui explique pourquoi les JVMs en 32 bits sont limitées à un peu moins de 4 Go, la JVM ne peut pas contenir de nombre plus grand.
Par contre demander une JVM 64 bits c'est un peu inutile, à moins que tu aies une autre JVM 32 bits installée.

P.S.: Utilise le bouton éditer au lieu de poster deux messages consécutifs.
 
Oui j'ai pas mis d'espace dans la console, je me suis trompé écrivant mon message. Voici la ligne complète que j'utilise:
"java -d64 -Xms512M -Xmx2G -jar paper-119.jar nogui"
J'ai donné accès a 3 personnes sur le serveur, 4 avec moi. Donc pas de surcharge, notamment la nuit..
 
Bah essayes avec 4 Go de mémoire et de redémarrer ton serveur quotidiennement, avec juste Authme je pense que le démarrage est plutôt rapide.
 
Oui environ 20 secondes. Aussi, le serveur est stocké sur un RAID 1, ça ne peut pas causer de problème ?
 
Bonjour,

Non le RAID 1 ne cause pas de problème, au contraire il en évite (pas de risque de perte de données grâce à lui, car deux disques contiennent la même chose)