|
Прочая документация Помощь, книги, инструкции, описания |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
11.03.2010, 13:09 | #1 | |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
Crash dump'ы под *nix
Создаю тему из сохраненных ранее страниц, оригинальное название "Crash dump'ы под Linux".
Автор оригинальной темы mentat. Содержание почти полностью переделано. Выкладываю во вложениях 3 из 4 страницы(одной страницы нет т.к. там был просто флуд и никакой смысловой нагрузки он не нес). Нам понадобится:
Цитата:
И так начнем... Для отладки Mangos под *nix нужно: Linux: 1)Включаем генерацию дампов на текущую сессию Код:
ulimit -c unlimited Код:
* hard core unlimited 2) 2.1) Прежде чем редактировать файл /etc/sysctl.conf нужно определить точные имена некоторых переменных в консоли: Код:
cat /proc/sys/fs/suid_dumpable Код:
cat /proc/sys/kernel/suid_dumpable *заметка: В большинстве систем обычно первый файл присутствует 2.2) Создаем папку и ставим права доступа 777 Код:
mkdir -p /var/log/dumps chmod -R 777 /var/log/dumps Добавляем в конец файла строчки(!!!в место "[define]" вставляем то выделенное слово, из предыдущего действия, где файл имелся в наличии и возвращался какой либо результат!!!): Код:
[define].suid_dumpable=2 kernel.core_pattern="/var/log/dumps/%e.%p.core" Код:
sysctl -w [define].suid_dumpable=2 sysctl -w kernel.core_pattern="/var/log/dumps/core.%e.%p" Теперь дампы будут ложиться в папку /var/log/dumps/ *BSD: ***под бсд системами это не проверялось, то есть это переделанный копипаст*** 1)Должна быть включена опция в ядре: Код:
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Код:
kern.coredump=1 kern.corefile=/home/cores/%U.%N.core Код:
sysctl -w kern.coredump=1 sysctl -w kern.corefile=/home/cores/%U.%N.core Работа с отладчиком GDB: 2) Создать файл(создать можно где душе угодно, лишь бы было бы удобно) bt с содержанием Код:
bt full смотрим коре дамп в отладчике Код:
gdb /path/to/mangos-worldd -c /path/to/[имя файла дампа].core -n --command=/path/to/bt Код:
gdb /path/to/mangos-worldd -c /path/to/[имя файла дампа].core -n --batch --command=/path/to/bt >> dump.log Ресурсы с которых бралась информация: 1) _http://linux.die.net/man/5/core также можно это глянуть через man core 2) _http://www.randombugs.com/linux/core-dumps-linux.html использовалась система OpenSuse11.2(2.6.31.5-0.1-default) Последний раз редактировалось CruncH; 10.05.2010 в 21:19. |
|
14 пользователя(ей) сказали cпасибо: | Chestarfild (12.05.2010), Feel the Power (12.03.2010), FreeBSD (03.10.2010), PSZ (23.03.2010), Sid (07.04.2011), sven (16.03.2010), Viste (11.03.2010) |
11.03.2010, 22:05 | #2 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
Дописал все что требовалось, скрипты не выносил из тех страниц по той причине что их нужно делать универсальными, а не заточенными под конкретную систему.
|
18.03.2010, 04:24 | #4 | |
Гость
Сообщений: n/a
|
Core.damp
Цитата:
Код:
--with-debug-info когда все это падает в корку - на винте должно быть не менее ~500 Mb свободного места..учтите это, а то я систему колом поставил, когда неожиданно организовал пару "корок" при сборке с опцией Код:
--with-debug-info |
|
Пользователь сказал cпасибо: | CruncH (18.03.2010) |
18.03.2010, 09:18 | #5 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
muraig, то что корки могут весить очень много(размер равен ~занимаемоей памяти в озу), я это знаю. Там не так место на диске нужно будет, как скорость записи этой корки на жесткий диск. Так как пока корка не сольется на жесткий, "авторестартер" не запустит новый процесс ядра.
|
Пользователь сказал cпасибо: |
19.03.2010, 20:50 | #6 | |
Гость
Сообщений: n/a
|
Core.damp
Цитата:
зато собрал портом Код:
MaNGOS/0.16.0 (* * Revision 9592 - *) for FreeBSD_x64 (little-endian) [world-daemon] Loading ScriptDev2 (for MaNGOS 9444+). Код:
gmake[1]: Leaving directory `/usr/local/MaNGOS/Posrts/mangos/work/mangos-9592/objdir' ===> Running ldconfig /sbin/ldconfig -m /usr/local/lib ===> Registering installation for mangos-9592 двое суток сидел, разбирался с опциями вот так вроде получается: еще нужно сделать интерактивный выбор названия исполняемого файла(если серверов более двух - могут возникнуть проблемы с гашением процессов) и еще есть мулька - перевести на PostgreSQL базу |
|
03.05.2010, 15:16 | #7 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Могу посоветовать отличную программку для авторестарта/отладки процесса сервера. Название - restartd
http://packages.ubuntu.com/ru/jaunty/restartd - для Убунту. Для остальных систем можно поискать в гугле. Скачиваем, устанавливаем, в файле конфига (/etc/restartd.conf) прописываем после объяснений нечто вида: Код:
# Restartd configuration file # Format: # # <process_name> <regexp> <action_if_not_running> <action_if_running> # # process_name: the name of the process which is just for logging # as it does not affect for the regexp # # regexp: the POSIX regular expression for the command line of the # process # # action_if_not_running: a script or program name to execute if the # regexp does not match the full process command line # # action_if_running: a script or program name to execute if the regexp # matches the full process command line # Example: # # restartd ".*restartd" "/bin/echo 'It is not running!' >/tmp/restartd.out" "/bin/echo 'It is running!' >/tmp/restartd.out" wotlk "mangos-wotlk" "ulimit -c unlimited; /opt/war/bin/mangos-worldd > /dev/null 2>&1 &" "" /opt/war/bin/mangos-worldd - путь куда вы установили сервер Креш дампы будут складироваться в Корне "/" и будут иметь вид "core.xxxx"(где хххх - номер процесса когда мангос работал). Прочитать дамп вполне просто. В консоле вводим: gdb /opt/war/bin/mangos-worldd -c /core.xxxx далее bt либо bt full Может быть это кому-то поможет. Внимание для прочтения дампов вам потребуется пакет gdb который можно скачать командой apt-get install gdb(yum install gdb для Федоры). ----------------------- Добавлено: Запуск программы restartd можно осуществить выполнив команду ./usr/sbin/restartd (Для убунту) либо (./sbin/restartd для Федоры). Отключить программу просто - убить процесс с помощью kill id_процесса. Также возможно ее поставить как службу включив ее в /etc/init.d после этого старт/рестарт/остановка возможны командами service restartd start|restart|stop Последний раз редактировалось selector; 03.05.2010 в 15:34. Причина: Добавлено описание |
21.08.2010, 11:09 | #8 | ||
Гость
Сообщений: n/a
|
Цитата:
Цитата:
Код:
#!/bin/sh while true ; do servlog='/home/mangos/bin/Server.log'; outpatch='/home/mangos/bin/crash/'; date=`date "+%Y-%m-%d_%H:%M:%S"`; echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt; echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt; cat $servlog | tail -n 30 >> $outpatch$date.txt; echo "" >> $outpatch$date.txt; echo "END bugtracker system." >> $outpatch$date.txt; /home/mangos/bin/mangos-worldd done Последний раз редактировалось KaraPUZ; 21.08.2010 в 11:27. |
||
10.05.2010, 20:52 | #9 |
Новичок
Регистрация: 29.04.2010
Сообщений: 11
Сказал(а) спасибо: 18
Поблагодарили 4 раз(а) в 2 сообщениях
|
на счет первого поста (2.3) не понятно.
/proc/sys/fs/suid_dumpable.suid_dumpable=2 kernel.core_pattern="/var/log/dumps/%e.%p.core" правильно ? если да, то при перезагрузки sysctl лезут ошибки |
10.05.2010, 21:06 | #10 | |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
Цитата:
Чуть внимательнее нада было... PS: выделю тот пункт чуть лучше... |
|
10.05.2010, 21:13 | #11 |
Новичок
Регистрация: 29.04.2010
Сообщений: 11
Сказал(а) спасибо: 18
Поблагодарили 4 раз(а) в 2 сообщениях
|
спасибо) читал пару раз не заметил что выделенное слово было )
Последний раз редактировалось lina; 10.05.2010 в 21:17. |
15.05.2010, 12:34 | #12 |
Гость
Сообщений: n/a
|
|
20.05.2010, 18:49 | #13 |
Новичок
Регистрация: 29.04.2010
Сообщений: 11
Сказал(а) спасибо: 18
Поблагодарили 4 раз(а) в 2 сообщениях
|
у меня вообще все кроме крашей сервера туда сбрасывается
например вылетел rar, кор файл создался показал bt вылетел мангос, ничего не создаётся. возможно это из за Скрина ? |
20.05.2010, 20:23 | #14 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
lina, нада смотреть скрипт который запускает mangos, и туда прописывать ulimit(я думаю в твоем случае screen запускает скрипт, который выполняет роль авторестартера, вот в него и нужно дописать ulimit), а разрешать делать дампы на всю систему неправильно, много мусора будет.
BonDit, ну я там еще с самого начала сделал сноску(там где еще для линя настройки идут) "смотри man core", фряхи под рукой нету, так что сказать ничего не могу как там точно. Тут есть + коре дампы не будут захламлять винт, а то иногда они достаточно тяжелые бывают. |
07.08.2010, 21:43 | #15 |
Гость
Сообщений: n/a
|
Сделал логи по описанию в 1м посте.
В дирекции папки: /var/log/dumps/ создаются нужные логи, например: mangos-worldd.1281186816.1878.core Но их вес составляет 600-800 Мб. При этом сервер более 4х часов не работал. В чём может быть проблема? |
07.08.2010, 23:21 | #16 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Пять баллов.
По теме - например я (ни линуксоид не близко) подозреваю, что это полный дамп ядра на момент краша. Может быть вам стоит использовать проприетарную, и более дружелюбную к пользователям, операционную систему?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
Метки |
core dump, crash dump, linux |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[fix][0.12] player dump | Chipleo | Принятые патчи | 1 | 02.07.2010 15:18 |
Crash с инстами | ice74 | Баг-репорты | 12 | 20.05.2010 12:11 |
[Crash?] удаление GO | zergtmn | Баг-репорты | 0 | 29.04.2010 22:31 |
[crash] EffectScriptEffect | Insider42 | Баг-репорты | 8 | 23.04.2010 12:49 |
Crash(game_event) | selector | Баг-репорты | 9 | 19.04.2010 19:41 |