Megoldás a "Core Dumped" hibára a Metin2 szervereken
Az egyik olyan hiba, amelytől a Metin2 PVP szerveradminisztrátorai a legjobban félnek, és amely a csatorna hirtelen bezárását okozza (CH) "A mag kidobva" (Core Crash) jön. Ez a hiba akkor fordul elő, ha a kiszolgáló kikapcsolja magát egy hibás kód, amelyet nem tud feldolgozni a memóriában (RAM), érvénytelen adatbázis-lekérdezés vagy sérült fájl miatt. Az alábbiakban lépésről lépésre megtudhatja, hogyan oldja meg ezt a problémát.
1. lépés: Annak megállapítása, hogy melyik fájl összeomlott
Amikor megjelenik a Core dumping hibaüzenet, a szerver az összeomlott mappába kerül.game.corevagydb.coreEz egy nagy fájlt hagy maga után. Először is meg kell találnunk a probléma forrását:
- Csatlakozzon a szerveréhez a Filezillával, és navigáljon abba a könyvtárba, ahol a csatornák találhatók (pl.
/usr/game/cores/channel1). - mappában game.core Ha látja a fájlt, akkor a hibát egy játékon belüli rendszer okozza (C++ forráskódok vagy nem megfelelő térkép/elem használata).
- ha
/usr/game/cores/dbbe db.core Ha látja, akkor a problémát teljes mértékben egy sérült tábla vagy a Navicat adatbázis hibás protobejegyzése okozza.
2. lépés: A hibás Syserr kimenet rögzítése
A Core Dumped hiba pontosan abban a másodpercben hagy kritikus naplót a syserr.txt fájlban, amikor megjelenik. A hiba megoldásához:
- Abban a mappában, amelyik kiírja a magot (pl.: csatorna1) syserr Nyissa meg a fájlt.
- Ugrás a fájl alsó soraihoz
CRASH,Segmentation FaultvagyAssertion failedKeress rá a szavakra. - Az ide írt függvénynév vagy elemkód közvetlenül megmutatja, melyik rendszer omlott össze a szerverrel. Ellenőrizze az utoljára hozzáadott rendszer vagy küldetés letiltásával.
3. lépés: Az alapfájl elemzése GDB-vel (technikai módszer)
Ha semmi nincs írva a syserr fájlban, használhatja a GDB-t (GNU Debugger) a FreeBSD-n, hogy megkeresse az összeomlást okozó C++ kódsort:
- Írja be azt a könyvtárat, ahol az összeomlás történt a Putty segítségével:
cd /usr/game/cores/channel1 - Indítsa el a hibakeresőt a következő parancs futtatásával a terminálban:
gdb game game.core - A parancssor megnyitásakor megjelenik a képernyőn
btvagywhereÍrja be, és nyomja meg az Enter billentyűt. - A képernyőn megjelenő listában a hibát okozó forráskódfájl és sorszám (pl.:
char_item.cpp:1452) lesz felsorolva. Ezt a sort a Forrás részben javítva kell újraépíteni.
4. lépés: Tekintse át a gyakori hibákat
Ha a közelmúltban nem hajtott végre kódmódosítást, ellenőrizze a következő két esetet:
- Táblázat korrupció: Előfordulhat, hogy a Navicat játékos adatbázisban lévő táblázatok sérültek. Válassza ki az összes táblázatot, és kattintson a jobb gombbal Karbantartás -> Javítási táblázatok -> Bővített csináld meg.
- Stack túlcsordulás: A játékosok által okozott hiba (pl. korlátlan számú csalás, pet bug) felfújhatja a szerver memóriáját, és magdömpinget okozhat. Használjon naprakész védelmi infrastruktúrákat (Guard).
Ez a cikk kifejezetten a PvPServer számára készült.