Çözüldü core dumped hatası

  • Konuyu açan Konuyu açan rachidghezzal
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 15
  • Gösterim Gösterim 2K
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

rachidghezzal

Yeni Üye
Üye
Mesaj
2
Beğeni
0
Puan
1
Ticaret Puanı
0
iyi akşamlar

rehber serisini takip ederek files oluşturmaya çalışıyorum, ./db & sleep 5 komutu sonrası;

Kod:
Genişlet Daralt Kopyala
Success ACCOUNT
AsyncSQL: connected to localhost (reconnect 1)
AsyncSQL: connected to localhost (reconnect 1)
AsyncSQL: connected to localhost (reconnect 1)
Success COMMON
AsyncSQL: connected to localhost (reconnect 1)
AsyncSQL: connected to localhost (reconnect 1)
AsyncSQL: connected to localhost (reconnect 1)
AsyncSQL: connected to localhost (reconnect 1)
[2]  - Segmentation fault            ./db (core dumped)

bu şekilde bir hata veriyor,videoda direkt olarak bir çözüm uygulanıyor fakat bende işe yaramadı.
-mysql server çalışıyor.

conf.txt:
Kod:
Genişlet Daralt Kopyala
WELCOME_MSG = "DB Serveri acildi... "

SQL_ACCOUNT = "localhost account     mt2 mt2sifre 3306"
SQL_PLAYER = "localhost player mt2 mt2sifre  3306"
SQL_COMMON = "localhost common mt2 mt2sifre 3306"
SQL_HOTBACKUP = "localhost hotbackup mt2 mt2sifre 3306"

TABLE_POSTFIX = " "

BIND_PORT               = 15900
DB_SLEEP_MSEC           = 10
CLIENT_HEART_FPS        = 10
HASH_PLAYER_LIFE_SEC    = 600
BACKUP_LIMIT_SEC        = 3600
PLAYER_ID_START = 100
PLAYER_DELETE_LEVEL_LIMIT = 70

ITEM_ID_RANGE = 2000000000 2100000000

LOCALE = "latin1"

syserr:
Kod:
Genişlet Daralt Kopyala
SYSERR: Apr 24 22:31:30 :: pid_init:
Start of pid: 78391

syslog:
Kod:
Genişlet Daralt Kopyala
SYSERR: Apr 24 22:31:30 :: pid_init:
Start of pid: 78391

Apr 24 22:31:30 :: LOCALE set to latin1
Apr 24 22:31:30 :: connecting to MySQL server (player)
Apr 24 22:31:30 :: CREATING DIRECT_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING MAIN_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING ASYNC_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 ::    OK
Apr 24 22:31:30 :: connecting to MySQL server (account)
Apr 24 22:31:30 :: CREATING DIRECT_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING MAIN_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING ASYNC_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 ::    OK
Apr 24 22:31:30 :: connecting to MySQL server (common)
Apr 24 22:31:30 :: CREATING DIRECT_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING MAIN_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 :: CREATING ASYNC_SQL
Apr 24 22:31:30 :: AsyncSQL: locale latin1
Apr 24 22:31:30 ::    OK
Apr 24 22:31:30 :: ClientManager initialization..
Apr 24 22:31:30 :: InitializeLocalization() - LoadLocaleTable(count:13)
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE0)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE1)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE2)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE3)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE4)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE5)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE6)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[UNKNOWN_KEY(SKILL_POWER_BY_LEVEL_TYPE7)] = 0 5 6 8 10 12 14 16 18 20 22 24
Apr 24 22:31:30 :: locale[LOCALE] = turkey
Apr 24 22:31:30 :: Changed g_stLocale latin1 to euckr
Apr 24 22:31:30 :: before call SetLocale: latin5
Apr 24 22:31:30 :: SetLocale start
Apr 24 22:31:30 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:30 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:30 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:31 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:31 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:31 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:32 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:32 ::     --mysql_set_character_set(latin5)
Apr 24 22:31:32 ::     --mysql_set_character_set(latin5)

bt full :

Kod:
Genişlet Daralt Kopyala
#0  0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1  0x080d630f in CAsyncSQL2::SetLocale ()
#2  0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173
#3  0x0805da34 in CClientManager::InitializeLocalization (this=0xbfbfe37c) at ClientManager.cpp:3705
#4  0x0805e74d in CClientManager::Initialize (this=0xbfbfe37c) at ClientManager.cpp:109
#5  0x0804fe02 in Start () at Main.cpp:352
#6  0x08050045 in main () at Main.cpp:88

#0  0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
No symbol table info available.
#1  0x080d630f in CAsyncSQL2::SetLocale ()
No symbol table info available.
#2  0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173
        n = 3
        stLocale = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
    _M_p = 0x2840d04c "latin5"}}
#3  0x0805da34 in CClientManager::InitializeLocalization (this=0xbfbfe37c) at ClientManager.cpp:3705
        locale = {szValue = "turkey\000 10 12 14 16 18 20 22 24", szKey = "LOCALE\000OWER_BY_LEVEL_TYPE7\000\0209(\036"}
        szQuery = "SELECT mValue, mKey FROM locale", '\0' <repeats 11 times>, "\017", '\0' <repeats 19 times>, "▒W▒▒t▒7\000▒ݿ▒▒߿▒hݿ▒\rZ4(▒ݿ▒▒▒7(\034▒6(▒ݿ▒▒Y4(t▒7(\230ݿ▒▒J4(▒▒30\034▒6(▒ݿ▒▒W▒▒\200\203\020(▒V\020(▒k5(t▒7(▒▒7(S߿▒▒\0379(▒ݿ▒\000\000\000\000\000\000\000\000▒\0379(▒ݿ▒\000\000\000\000\000\000\000\000X▒\r\b\037\000\000\000l߿▒\000\000\000\000▒▒▒\177"...
        pMsg = (SQLMsg *) 0x2847e220
        row = <value optimized out>
        __FUNCTION__ = "InitializeLocalization"
#4  0x0805e74d in CClientManager::Initialize (this=0xbfbfe37c) at ClientManager.cpp:109
        tmpValue = <value optimized out>
        szBindIP = "\023\000\000\000▒k5(t▒7(\000\000\000\000▒\206\001\000\000\000\000\000t▒7(▒\0379(▒\0379(▒߿▒qU6(\030 9(\000▒H(3\000\000\000t▒7(t▒7(\000\000\000\000▒߿▒▒T6(▒\0379(▒▒7(X▒\r\b`\0209(X▒\r\b▒⿿\b࿿▒\207\n\b▒\0379(▒\0379(\030࿿\005\000\000\000▒⿿"
        iChinaEventServer = <value optimized out>
        __FUNCTION__ = "Initialize"
#5  0x0804fe02 in Start () at Main.cpp:352
        iRetry = 5
        tmpValue = 304
        heart_beat = 10
        szBuf = " \000tin1\000▒▒h\035'(\000▒\020(ѣ\004\b▒I<\a0▒\202\r \223\020(\001\000\000\000\000▒\020(h\035'(▒⿿▒V\020(\000▒\020(x⿿▒῿▒]\017(▒\231\031(\030\000\000\000T▒A(\025\000\000\000▒▒\031(\230῿<⿿ѣ\004\b▒I<\a0▒\202\r \223\020(\001\000\000\000\000▒\020(h\035'(▒⿿▒V\020(\000▒\020(x⿿T⿿`a\017(\225▒\r\b$⿿$⿿\034\000\000\000\n▒\005@\000▒\020(\000▒\020(\000▒\020(\000▒\020(\000▒\020(\000▒\020(\000▒\020((▒@"...
        iDisableHotBackup = -1077941192
        iIDStart = 100
        szAddr = "localhost\000\000\000\000▒\020(4쿿▒뿿▒꿿X㿿▒▒\016(\000▒\020(p\005\000\000▒꿿▒迿▒迿8쿿4쿿"
        szDB = "common\000\000▒⿿\000\000\000\000X㿿(,\b\b\001\000\000\000▒d\017(▒V\020(▒⿿\024㿿▒뿿▒꿿\177\022@(\000▒@(▒▒@("
        szUser = "mt2\000▒I<\a▒V\020(▒⿿▒~\017(\000\220\020(h\035'(▒⿿▒V\020(▒뿿▒V\020(\024㿿Te\017(\204d\020(▒⿿\004㿿"
        szPassword = "mt2sifre\000\000\000\000\a\000\000\000▒V\020(\000\000\000\000\000▒\020(▒⿿\001d\017(\000▒\020(▒\000\000\000l▒A(\017~\017(▒▒@(▒\223\004\bѣ\004\b"
        iPort = 3306
        line = "localhost common mt2 mt2sifre 3306\0003306\000\000\000\n\000\000\000p\212 \b\2008\017(▒▒'(▒▒\004\b\000▒A(▒\212 \b@\000\000\000\006\000\000\000p\212 \b\000῿H῿▒}'(\002\000\002\000▒V\020(\000\000\000\000\000▒\020($῿▒Z\017(\201\005\000\000\004\000\000\000p\212 \b\002\000\000\000 \000\000\000p\212 \b\001\000\000\000\000῿Y\b.(\000\000\000\000@▒&(▒▒-(t▒7(\021\000\000\000\004\000\000\000▒▒-(t▒7(\024\000\000\000$⿿8῿Y\b"...
        __FUNCTION__ = "Start"
#6  0x08050045 in main () at Main.cpp:88
        Config = {<singleton<CConfig>> = {_vptr$singleton = 0x80dce90, static ms_singleton = 0xbfbfec18}, m_valueMap = {_M_t = {

denenen çözümler:
conf dosyasındaki latin1 latin 5 yapıldı olmadı.
rehber videosunda sorunu çözen main dosyasından kod silme denendi olmadı.
 
Son düzenleme:
Çözüm
Gece yarısı konuyu güncellemeyi unutmuşum. Anydesk ile bağlanıp github’da paylaştığım dosyaları derledik direkt. Herhangi bir sorun çıkmadan derlendi. Büyük ihtimal bir yerlerde hata yapılmış olabilir. Kısa yoldan bu şekilde çözüme ulaştık.
Konuya katkı sunan herkese teşekkürler
Alakası olduğunu düşünmüyorum. Libsql üstünde hiçbir kullanıcının eklemesi vs. bulunmuyor nerdeyse. DBManager.cpp kaynaklı bir hata bu.
#1 0x080d630f in CAsyncSQL2::SetLocale ()
#2 0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173

latin5 ayarlarken çöküyor. libsql yapıyor ayarlamayı..
 
#1 0x080d630f in CAsyncSQL2::SetLocale ()
#2 0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173

latin5 ayarlarken çöküyor. libsql yapıyor ayarlamayı..
Onda hemfikiriz, latin5 ayarlarken çöküyor. Ama libsql'e bakıp çözebileceği bir şey olduğunu sanmıyorum. Türkçe karakterleri ayarlamak için latin5 yapmış fakat tablodaki bir karakter verdirtiyor sanırım bu core u.
 
Onda hemfikiriz, latin5 ayarlarken çöküyor. Ama libsql'e bakıp çözebileceği bir şey olduğunu sanmıyorum. Türkçe karakterleri ayarlamak için latin5 yapmış fakat tablodaki bir karakter verdirtiyor sanırım bu core u.
#0 0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1 0x080d630f in CAsyncSQL2::SetLocale ()

std::string::assign


gdb ile debug etmesi gerekli.


bu arada conf.txt de ki LOCALE = "latin1" i latin5 yaparsa sorun kısmen çözülebilir..
 
Bunun çözümü zaten videoda göstermiştim. Atlamadan izlediğinize emin misiniz?

Birde şu kısımı;
Kod:
Genişlet Daralt Kopyala
SQL_ACCOUNT = "localhost account     mt2 mt2sifre 3306"

Şöyle değiştirebilir misiniz?
Kod:
Genişlet Daralt Kopyala
SQL_ACCOUNT = "localhost account mt2 mt2sifre 3306"
 
#0 0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1 0x080d630f in CAsyncSQL2::SetLocale ()

std::string::assign


gdb ile debug etmesi gerekli.


bu arada conf.txt de ki LOCALE = "latin1" i latin5 yaparsa sorun kısmen çözülebilir..
Denenebilir. Bunu denedikten sonra yabancı bi forumda DBManager.cpp'de SetLocale fonksiyonunun sonuna sleep(10); eklenmiş bu da denenebilir.
 
Denenebilir. Bunu denedikten sonra yabancı bi forumda ClientManager.cpp'de SetLocale fonksiyonunun sonuna sleep(10); eklenmiş bu da denenebilir.

sleep işe yaramaz, db 10 saniye geç çöker sadece. çökmesinin nedeni türkçe karakter falan da değil zaten, std::string::assign fonksiyonunda çöküyor ki bu oyuna özel bir kod değil.

%100 çözüm için debug edecek, sorunun tam yerini bulacak. libsql den çıkan kodu vermemiş gdb. libsql de ki kodun çıkışında sıkıntı var..
 
sleep işe yaramaz, db 10 saniye geç çöker sadece. çökmesinin nedeni türkçe karakter falan da değil zaten, std::string::assign fonksiyonunda çöküyor ki bu oyuna özel bir kod değil.

%100 çözüm için debug edecek, sorunun tam yerini bulacak. libsql den çıkan kodu vermemiş gdb. libsql de ki kodun çıkışında sıkıntı var..
Şuana kadar hiç böyle bi core almadım eğer libde böyle bir hata alsa %90 source'lerde böyle bir lib hatası olması gerekirdi. Dediğini anladım fakat hala sorunun libde olduğunu düşünmüyorum.
 
Şuana kadar hiç böyle bi core almadım eğer libde böyle bir hata alsa %90 source'lerde böyle bir lib hatası olması gerekirdi. Dediğini anladım fakat hala sorunun libde olduğunu düşünmüyorum.

böyle bir lib hatası alan var zaten;

Linkleri görebilmek için giriş yap veya kayıt ol.



sorunun libde olduğunu düşünmeye gerek bile yok çünkü sorunun zaten libde olduğunu gdb söylüyor;

#0 0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1 0x080d630f in CAsyncSQL2::SetLocale ()
#2 0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173


CDBManager::SetLocale den latin5 ayarlaması çıkıyor ancak CAsyncSQL2::SetLocale den çıkan kod çökmeye neden oluyor.

std::string::assign () from /usr/lib/libstdc++.so.6 kodu db nin geldiği son adım ki bu kod direkt c++kütüphanesinden bir kod yani bu kodda hata olma olasılığı 0.
 
böyle bir lib hatası alan var zaten;

Linkleri görebilmek için giriş yap veya kayıt ol.



sorunun libde olduğunu düşünmeye gerek bile yok çünkü sorunun zaten libde olduğunu gdb söylüyor;

#0 0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1 0x080d630f in CAsyncSQL2::SetLocale ()
#2 0x08051060 in CDBManager::SetLocale (this=0xbfbfeb68, szLocale=0x2840dd4c "latin5") at DBManager.cpp:173


CDBManager::SetLocale den latin5 ayarlaması çıkıyor ancak CAsyncSQL2::SetLocale den çıkan kod çökmeye neden oluyor.

std::string::assign () from /usr/lib/libstdc++.so.6 kodu db nin geldiği son adım ki bu kod direkt c++kütüphanesinden bir kod yani bu kodda hata olma olasılığı 0.
Attığın kaynağa bakınca daha iyi anladım. Libde direk stLocale'den gelen charset datasını m_stLocale'e eşitliyor. Ama zaten eşit olup olmadığını kontrol etmiyor.

std::assign düşmesinin sebebi de strcpy ile nerdeyse aynı mantıkla çalışıyor. Aynı datayı aynı datayayla değiştirmeye çalıştığında core düşüyor.
 
Attığın kaynağa bakınca daha iyi anladım. Libde direk stLocale'den gelen charset datasını m_stLocale'e eşitliyor. Ama zaten eşit olup olmadığını kontrol etmiyor.

std::assign düşmesinin sebebi de strcpy ile nerdeyse aynı mantıkla çalışıyor. Aynı datayı aynı dataya eşitlemeye çalıştığında core düşüyor.
QueryLocaleSet çalıştırıyor sürekli;

while (!QueryLocaleSet());

bunları kontrol etmesi gerekli.

büyük ihtimal CAsyncSQL::Connect kısmında ki deaktif olan;

//while (!QueryLocaleSet());

kodu aktif etmiştir..


kısacası libsql de ki asyncsql sorunlu.
 
Bunun çözümü zaten videoda göstermiştim. Atlamadan izlediğinize emin misiniz?

Birde şu kısımı;
Kod:
Genişlet Daralt Kopyala
SQL_ACCOUNT = "localhost account     mt2 mt2sifre 3306"

Şöyle değiştirebilir misiniz?
Kod:
Genişlet Daralt Kopyala
SQL_ACCOUNT = "localhost account mt2 mt2sifre 3306"
evet özellikle adım adım seyrediyorum hata olmasın diye,videoda yaptığınız main dosyasındaki kod silme çözümünü de denedim. sonra okuttum ama olmadı.
#0 0x2819bf52 in std::string::assign () from /usr/lib/libstdc++.so.6
#1 0x080d630f in CAsyncSQL2::SetLocale ()

std::string::assign


gdb ile debug etmesi gerekli.


bu arada conf.txt de ki LOCALE = "latin1" i latin5 yaparsa sorun kısmen çözülebilir..
latin 1 i 5 yapıp denedim olmadı malesef
 
evet özellikle adım adım seyrediyorum hata olmasın diye,videoda yaptığınız main dosyasındaki kod silme çözümünü de denedim. sonra okuttum ama olmadı.
İsterseniz bana özel mesaj ile Anydesk bağlantısı gönderin. Birde gelip ben inceleyeyim
 
Gece yarısı konuyu güncellemeyi unutmuşum. Anydesk ile bağlanıp github’da paylaştığım dosyaları derledik direkt. Herhangi bir sorun çıkmadan derlendi. Büyük ihtimal bir yerlerde hata yapılmış olabilir. Kısa yoldan bu şekilde çözüme ulaştık.
Konuya katkı sunan herkese teşekkürler
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst