Вернуться   Russian Mangos DC > Баг Репорты > Mangos > Краши, Зависания сервера
Добро пожаловать, CruncH.
Ваш последний визит: 24.07.2009 в 15:12
Личные сообщения: Новых 0, всего 7.

Ответ
 
Опции темы Поиск в этой теме Оценить тему Опции просмотра
Старый 03.04.2007, 15:09   #1
RMDC Civilian
 
Регистрация: 12.11.2006
Сообщений: 78
Сказали спасибо: 8 раз
mentat на пути к лучшему
По умолчанию Crash dump'ы под Linux

Для отладки Mangos под *nix нужно:
1) Включить генерацию .core файлов


Для Linux Debian это

Включаем генерацию дампов на текущую сессию
Код:
ulimit -c unlimited
и/или в файле
/etc/security/limits.conf

Код:
* soft core 0
Для FreeBSD это (спасибо Gather )

Для FreeBSD:
1) опция в ядре:
Код:
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
2) в файле /etc/sysctl.conf добавляем следующие строки:
Код:
kern.coredump=1 kern.corefile=/home/cores/%U.%N.core
Чтобы изменения применились сразу выполняем следующие команды:
Код:
sysctl -w kern.coredump=1 sysctl -w kern.corefile=/home/cores/%U.%N.core
При этом - директория /home/cores/ должна существовать. В нее будут складываться корки в виде:
Код:
-rw------- 1 mangos wheel 1277284352 May 15 01:08 1002.mangos-worldd.core
2) Создать файл coredump/bt с содержанием
Код:
bt full
или иным - man gdb

3) Создать файл для просмотра coredump'ов - спасибо Cracker
(не забудьте изменить переменную coredump)

Код:
#!/bin/sh
coredump=/home/mentat/server/bin/coredump
datec=`/bin/date +%m.%d.%H.%M.%S`
gdb ${sbin}/mangos-worldd -c ${sbin}/*.core --n --batch  --command=${coredump}/bt >> ${coredump}/${datec}_dump
PS. Этот manual все еще under construction. Чувствуйте себя свободными высказывать пожелания, дополнения и т.д.
mentat вне форума Добавить отзыв для mentat Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Эти 2 пользователя(ей) сказали Спасибо mentat за это полезное сообщение:
Старый 03.04.2007, 15:16   #2
ups_wc3
Guest
 
Сообщений: n/a
По умолчанию

Речь идет о дампах баз? У меня реализовано все 2мя простыми скриптами через cron. Один скрипт - авторестартер, другой - бекап баз каждые 3 часа с автоматическим архивированием.
Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 03.04.2007, 15:36   #3
RMDC Civilian
 
Регистрация: 12.11.2006
Сообщений: 78
Сказали спасибо: 8 раз
mentat на пути к лучшему
По умолчанию

О креш-дампах памяти процесса mangosd

Проще говоря, когда сервер падает - как создать креш дамп автоматом.
mentat вне форума Добавить отзыв для mentat Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 03.04.2007, 19:15   #4
RMDC Dev
 
Аватар для Craker
 
Регистрация: 08.07.2006
Сообщений: 728
Сказали спасибо: 22 раз
Craker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человек
По умолчанию

поправить рестартер? Например я сделал так:

Код:
datec=`/bin/date +%m.%d.%H.%M.%S`
gdb ${sbin}/mangos-worldd -c ${sbin}/*.core --n --batch  --command=${coredump}/bt >> ${coredump}/${datec}_dump
sbin - директория где лежат бинарники
coredump - куда положить обработанный файл дампа
В папке coredump лежит файлик bt с командами для выполнения, у меня там только bt full, но кому надо больше могут изменить...


Кстати, иногда (довольно часто даже наверное) полявляются дампы с примерно таким содержанием
Код:
Core was generated by `mangos-worldd'.
Program terminated with signal 11, Segmentation fault.
#0  0x283d7537 in pthread_testcancel () from /lib/libpthread.so.2
[New Thread 0x88df800 (runnable)]
[New Thread 0x88df000 (sleeping)]
[New Thread 0x8b1ee00 (sleeping)]
[New Thread 0x8b1ec00 (sleeping)]
[New Thread 0x8b1ea00 (sleeping)]
[New Thread 0x8b1e800 (sleeping)]
[New Thread 0x8b1e600 (sleeping)]
[New Thread 0x8b1e400 (LWP 100094)]
[New Thread 0x83d4000 (runnable)]
[New LWP 100043]
#0  0x283d7537 in pthread_testcancel () from /lib/libpthread.so.2
No symbol table info available.
#1  0x283cfec8 in pthread_mutexattr_init () from /lib/libpthread.so.2
No symbol table info available.
#2  0x282ad450 in ?? ()
No symbol table info available.
из-за чего это может быть?

Цитата:
Сообщение от ups_wc3 Посмотреть сообщение
Речь идет о дампах баз? У меня реализовано все 2мя простыми скриптами через cron. Один скрипт - авторестартер, другой - бекап баз каждые 3 часа с автоматическим архивированием.
покажи бекапер свой
__________________
Craker вне форума Добавить отзыв для Craker Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 04.04.2007, 01:30   #5
log
Guest
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Craker Посмотреть сообщение
Код:
#0  0x283d7537 in pthread_testcancel () from /lib/libpthread.so.2
No symbol table info available.
#1  0x283cfec8 in pthread_mutexattr_init () from /lib/libpthread.so.2
No symbol table info available.
#2  0x282ad450 in ?? ()
No symbol table info available.
из-за чего это может быть?
если утебя *BSD то в гугле нашел что то похожее https://forge.continuent.org/jira/browse/CAROB-117
уменя под FC6 ни разу ничего подобного не было.
Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 04.04.2007, 12:41   #6
RMDC Dev
 
Аватар для Craker
 
Регистрация: 08.07.2006
Сообщений: 728
Сказали спасибо: 22 раз
Craker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от log Посмотреть сообщение
если утебя *BSD то в гугле нашел что то похожее https://forge.continuent.org/jira/browse/CAROB-117
уменя под FC6 ни разу ничего подобного не было.
ДАДА, в том то и дело что фрибсд 6.2, хм я думал что это краш, и просто ему не вывесте стёк из библиотек (где был краш), оказуется всё ещё интереснее
__________________
Craker вне форума Добавить отзыв для Craker Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 04.04.2007, 13:18   #7
RMDC Dev
 
Аватар для Craker
 
Регистрация: 08.07.2006
Сообщений: 728
Сказали спасибо: 22 раз
Craker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человек
По умолчанию

так кажется понял, кстати почему mysql библотеки через -pthread ? Именно с ним кажется и проблемы у freebsd
__________________
Craker вне форума Добавить отзыв для Craker Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 04.04.2007, 13:27   #8
RMDC Civilian
 
Регистрация: 12.11.2006
Сообщений: 78
Сказали спасибо: 8 раз
mentat на пути к лучшему
По умолчанию

Thx ! Попробую ...
mentat вне форума Добавить отзыв для mentat Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 04.04.2007, 20:18   #9
RMDC Dev
 
Аватар для Craker
 
Регистрация: 08.07.2006
Сообщений: 728
Сказали спасибо: 22 раз
Craker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человек
По умолчанию

хм, врятли,. у меня всегда signal 11, Segmentation fault....Вопрос к знающим, возможно ли это краш где-инбудь в библиотеках (сд2, zthread и т.д., откуда просто не получилось взять информацию?)
__________________
Craker вне форума Добавить отзыв для Craker Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Старый 05.04.2007, 15:58   #10
RMDC Dev
 
Аватар для Craker
 
Регистрация: 08.07.2006
Сообщений: 728
Сказали спасибо: 22 раз
Craker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человекCraker - очень-очень хороший человек
По умолчанию

так попробывал продебажить дамп более усердно, вот всё и вылезло, но почему небыло кол стака это действительно нонсанс...

Код:
(gdb) info thread
................
  1 Thread 0x9114600 (runnable)  Player::_RemoveAllItemMods (this=0x1022d000) at Object.h:122
(gdb) thread 1
[Switching to thread 1 (Thread 0x9114600 (runnable))]#0  Player::_RemoveAllItemMods (this=0x1022d000) at Object.h:122
122             {
(gdb) bt
#0  Player::_RemoveAllItemMods (this=0x1022d000) at Object.h:122
#1  0x081692b0 in Player::SaveToDB (this=0x1022d000) at Player.cpp:10729
#2  0x0818aef8 in Player::Update (this=0x1022d000, p_time=104) at Player.cpp:825
#3  0x0812a7fd in ObjectAccessor::Update (this=0xb4b2e00, diff=@0xbf2f7ce4) at hashtable.h:133
#4  0x0811a04a in MapManager::Update (this=0x8c83600, diff=104) at Timer.h:62
#5  0x081ea92f in World::Update (this=0x83e0e00, diff=104) at World.cpp:618
#6  0x080a883d in WorldRunnable::run (this=0x8b1c710) at WorldRunnable.cpp:52
#7  0x483fc74f in ZThread::ThreadImpl::dispatch (parent=0x83e9200, impl=0x8c28680, task=
        {<ZThread::CountedPtr<ZThread::Runnable,ZThread::AtomicCount>> = {_count = 0x8b1c720, _instance = 0x8b1c710}, <N
o data fields>}) at CountedPtr.h:215
#8  0x483fd870 in ZThread::(anonymous namespace)::Launcher::run (this=0xbfbfe720) at CountedPtr.h:85
#9  0x48403a3d in _dispatch (arg=0xbfbfe720) at ThreadOps.cxx:137
#10 0x4841c3a5 in pthread_create () from /lib/libpthread.so.2
#11 0x485ba137 in _ctx_start () from /lib/libc.so.6
(gdb) bt full
#0  Player::_RemoveAllItemMods (this=0x1022d000) at Object.h:122
        proto = (const ItemPrototype *) 0xc2f9300
#1  0x081692b0 in Player::SaveToDB (this=0x1022d000) at Player.cpp:10729
        currentPower = {0, 0, 0, 100, 0}
        tmp_bytes = 287903744
        baseHealth = 4026535936
        basePower = {1.4899626e-33, -5042.44922, -802.211731, 0, 1.79646463e-42}
        ss = <incomplete type>
        currentHealth = 808
        tmp_flags = 189476352
        tmp_pflags = 135901259
        tmp_displayid = 3207526504
        inworld = 15
        i = 61440
#2  0x0818aef8 in Player::Update (this=0x1022d000, p_time=104) at Player.cpp:825
        bubble = 5.70267574e-34
        time_inn = 0
#3  0x0812a7fd in ObjectAccessor::Update (this=0xb4b2e00, diff=@0xbf2f7ce4) at hashtable.h:133
        iter = {_M_cur = 0xb4d2160, _M_ht = 0xb4b2e00}
#4  0x0811a04a in MapManager::Update (this=0x8c83600, diff=104) at Timer.h:62
        iter = {_M_cur = 0x0, _M_ht = 0x8c83628}
#5  0x081ea92f in World::Update (this=0x83e0e00, diff=104) at World.cpp:618
        itr = Unhandled dwarf expression opcode 0x93
__________________
Craker вне форума Добавить отзыв для Craker Пожаловаться на это сообщение   Ответить с цитированием Мультицитирование этого сообщения Быстрый ответ на это сообщение Вы сказали Спасибо
Ответ

Быстрый ответ
Сообщение:
Убрать форматирование текста
Полужирный
Курсив
Подчёркнутый

Вставить изображение
Вставить BB код цитаты [QUOTE] вокруг выделенного текста
 
Уменьшить размер
Увеличить размер
Переключить режим редактора
Опции


Здесь присутствуют: 1 (пользователей: 1 , гостей: 0)
CruncH

Ваши права в разделе
Вы можете создавать новые темы
Вы можете отвечать в темах
Вы можете прикреплять вложения
Вы можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Anti-Crash waza123 Ядро 21 20.02.2009 18:04
Crash nhtrfgb Корзина форума 2 08.12.2008 20:40
Crash 6061-67 [Win] Andreyko Корзина форума 5 11.07.2008 13:59
[crash] 5785+SD2 385 (linux) -={ CaT MaX }=- Корзина форума 3 20.05.2008 03:47
Crash boss_midnight cyberkill Корзина форума 1 27.01.2008 19:23

Часовой пояс GMT +8, время: 00:33.
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. Перевод: zCarot

Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей. Вы не можете использовать MaNGOS в коммерческих целях, также не разрешается устанавливать публичные серверы на базе MaNGOS. Любое копирование материалов, информации в любом виде - без указания источника GetMangos.ru - будет считаться нарушением авторских прав, а так же нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.