PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Metin2 Serverlərində "Core Demped" Xətasının Həlli

Yazdır

Metin2 Serverlərində "Core Demped" Xətasının Həlli

Metin2 PVP server administratorlarının ən çox qorxduğu və kanalların qəfil bağlanmasına səbəb olan səhvlərdən biri (CH) "Nüvə atıldı" (Core Crash) gəlir. Bu xəta server yaddaşda (RAM) emal edə bilməyən səhv kodla, etibarsız verilənlər bazası sorğusu və ya zədələnmiş faylla qarşılaşdıqda özünü bağladıqda baş verir. Aşağıda bu problemi addım-addım necə həll edəcəyinizi tapa bilərsiniz.

Addım 1: Hansı faylın qəzaya uğradığını aşkar etmək

Core atılma xətası aldığınız zaman server qəzaya uğramış qovluğa yerləşdirilir.game.corevə yadb.coreadlı böyük bir fayl buraxır. Əvvəlcə problemin mənbəyini tapmalıyıq:

  • Filezilla ilə serverinizə qoşulun və kanalların yerləşdiyi qovluğa gedin (Məs:/usr/game/cores/channel1).
  • qovluğunda game.core Faylı görürsünüzsə, səhv oyundaxili sistemdən qaynaqlanır (C++ mənbə kodları və ya səhv xəritənin/elementin istifadəsi).
  • əgər/usr/game/cores/dbin db.core Əgər onu görürsünüzsə, problem tamamilə pozulmuş cədvəl və ya Navicat verilənlər bazasında səhv proto girişdən qaynaqlanır.

Addım 2: Səhv Syserr Çıxışının Tutulması

Core Dumped xətası baş verdiyi saniyədə syserr.txt faylında kritik jurnal buraxır. Xətanı həll etmək üçün:

  1. Əsas boşalma verən qovluqda (Məs: kanal1) syserr Faylı açın.
  2. Faylın alt sətirlərinə keçinCRASH,Segmentation Faultvə yaAssertion failedSözləri axtarın.
  3. Burada yazılan funksiya adı və ya element kodu birbaşa hansı sistemin serverin qəzaya uğradığını göstərəcək. Son əlavə etdiyiniz sistemi və ya tapşırığı söndürməklə yoxlayın.

Addım 3: Əsas Faylın GDB ilə Təhlili (Texniki Metod)

Əgər syserr faylında heç nə yazılmayıbsa, qəzaya səbəb olan C++ kodu xəttini tapmaq üçün FreeBSD-də GDB (GNU Debugger) istifadə edə bilərsiniz:

  • Putty vasitəsilə qəzanın baş verdiyi qovluğu daxil edin:
    cd /usr/game/cores/channel1
  • Terminalda aşağıdakı əmri işlətməklə sazlayıcıya başlayın:
    gdb game game.core
  • Komanda xətti açıldığında ekranda görünürbtvə yawhereOnu yazın və Enter düyməsini basın.
  • Ekranda görünəcək siyahıda mənbə kodu faylı və xətaya səbəb olan sətir nömrəsi (məsələn:char_item.cpp:1452) qeyd olunacaq. Mənbə bölməsində bu xətti düzəldərək yenidən qurmalısınız.

Addım 4: Ümumi səhvləri nəzərdən keçirin

Bu yaxınlarda heç bir kod dəyişikliyi etməmisinizsə, bu iki halı yoxlayın:

  • Cədvəl korrupsiyası: Navicat pleyer verilənlər bazasındakı cədvəllər xarab ola bilər. Bütün cədvəlləri seçin və sağ klikləyin Baxım -> Təmir Masaları -> Genişləndirilmiş et.
  • Stack Overflow: Oyunçular tərəfindən edilən səhv (məs., limitsiz vuruş fırıldaqı, ev heyvanı səhvi) serverin yaddaşını şişirdə və əsas dempinqə səbəb ola bilər. Ən müasir mühafizə infrastrukturlarından (Guard) istifadə edin.

Bu məqalə xüsusi olaraq PvPServer üçün hazırlanmışdır.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner