Solution à l'erreur "Core Dumped" sur les serveurs Metin2
Une des erreurs les plus redoutées par les administrateurs du serveur Metin2 PVP et provoquant une fermeture soudaine des chaînes (CH) « Core Dumpé » (Core Crash) arrive. Cette erreur se produit lorsque le serveur s'arrête suite à la détection d'un code défectueux qu'il ne peut pas traiter en mémoire (RAM), d'une requête de base de données non valide ou d'un fichier corrompu. Vous trouverez ci-dessous comment résoudre ce problème, étape par étape.
Étape 1 : Détecter quel fichier est tombé en panne
Lorsque vous obtenez l’erreur Core dumped, le serveur est placé dans le dossier en panne.game.coreoudb.coreIl laisse un gros fichier nommé . Nous devons d’abord trouver la source du problème :
- Connectez-vous à votre serveur avec Filezilla et accédez au répertoire où se trouvent les chaînes (Ex :
/usr/game/cores/channel1). - dans le dossier jeu.core Si vous voyez le fichier, l'erreur est causée par un système du jeu (codes sources C++ ou utilisation d'une carte/élément incorrect).
- si
/usr/game/cores/dbdans db.core Si vous le voyez, le problème est entièrement dû à une table corrompue ou à une entrée de protocole incorrecte dans la base de données Navicat.
Étape 2 : Capturer une sortie Syserr erronée
L'erreur Core Dumped laisse un journal critique dans le fichier syserr.txt à la seconde exacte où elle se produit. Pour résoudre l'erreur :
- Dans le dossier qui donne le core dumpé (Ex : canal 1) serveur système Ouvrez le fichier.
- Aller aux dernières lignes du fichier
CRASH,Segmentation FaultouAssertion failedRecherchez les mots. - Le nom de la fonction ou le code de l'élément écrit ici vous montrera directement quel système a fait planter le serveur. Vérifiez en désactivant le dernier système ou quête que vous avez ajouté.
Étape 3 : Analyse du fichier principal avec GDB (méthode technique)
Si rien n'est écrit dans le fichier syserr, vous pouvez utiliser GDB (GNU Debugger) sur FreeBSD pour trouver la ligne de code C++ à l'origine du crash :
- Entrez le répertoire où le crash s'est produit via Putty :
cd /usr/game/cores/channel1 - Démarrez le débogueur en exécutant la commande suivante dans le terminal :
gdb game game.core - Lorsque la ligne de commande est ouverte, elle apparaît à l'écran
btouwhereTapez-le et appuyez sur Entrée. - Dans la liste qui apparaîtra à l'écran, le fichier de code source et le numéro de ligne qui a provoqué l'erreur (ex. :
char_item.cpp:1452) sera répertorié. Vous devez reconstruire en corrigeant cette ligne dans la section Source.
Étape 4 : Examiner les erreurs courantes
Si vous n'avez apporté aucune modification au code récemment, vérifiez ces deux cas :
- Corruption des tables : Les tables de la base de données du lecteur Navicat sont peut-être corrompues. Sélection de toutes les tables et clic droit Maintenir -> Réparer les tables -> Étendu fais-le.
- Débordement de pile : Un bug créé par les joueurs (par exemple, triche à frappe illimitée, bug pour animaux de compagnie) peut gonfler la mémoire du serveur et provoquer un core dumping. Utiliser des infrastructures de protection à jour (Guard).
Cet article est spécialement préparé pour PvPServer.