Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

"Segmentation fault" или "Отправить отчет об ошибке?"

, Исправить возможно?
Empower
сообщение 3.8.2011, 22:21
Сообщение #1
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Падения серверов сопровождали администраторов, наверное, ещё с момента рождения самого hlds. Думаю, каждый из нас хотя бы раз сталкивался с ними, а для многих они даже являются огромной проблемой. При этом причины падений бывают крайне разными: начиная от експлойтов, и заканчивая ошибками в плагинах сервера. С первым комьюнити успешно борется, но вот насчет второго - проблема.
О самой часто допускаемой в плагинах ошибке, заставляемой нас топиться в крашах и "Segmentation fault-ах" я узнал относительно недавно. О ней и пойдет речь в данном посте.
Меня уже более двух лет мучили постоянные падения моего сервера как на Win, так и на linux, но когда сервер начал падать чуть ли не через каждые 2 часа, я решил посмотреть из-за чего же єто происходит, используя старенький, но очень полезный AMXX BinLoger. Результатом был крайне удивлен: перед каждым падением(segfault) запускалась одна и та же функция, но с разных плагинов. Это был get_pdata_int.

Код
Краш №1
6,123668E+07: Plugin "zombie_plague40.amxx" (30) called native "get_pdata_int" (61) with 3 parameters.
6,123668E+07: Binary log corrupt past this point.


Код
Краш №2
6,12647E+07: Plugin "lasermine.amxx" (1) called native "get_pdata_int" (27) with 3 parameters.
6,12647E+07: Binary log corrupt past this point.


Код
Краш №3
6,12567E+07: Plugin "buy_menu.amxx" (4) called native "get_pdata_int" (31) with 3 parameters.
6,12567E+07: Binary log corrupt past this point.

Как вы видите, все три краша были вызванные совсем разными плагинами. Не странно ли? Оказывается же все дело в том, что если вызвать функции, работающие с оффсетами get_pdata_* или set_pdata_*, в момент, когда сервер по каким-либо причинам еще не инициализировал приват дату для определенного игрока или ентити (это происходит при входе игрока на севрер, смене карты, создании новой ентити) , он просто напросто упадет, а такая ситуация просходит крайне часто. Например, мы часто видим падения при смене карты, а все потому-что в этот момент приват дата игроков еще не инициализирована, кроме того, такие падения довольно часто случаются и просто посредине карты.
Поэтому, пользуясь get_pdata_* и set_pdata_*, будьте крайне осторожны. И всегда проверяйте можно ли это делать. Делается это вот таким образом:

Код
if(pev_valid(ent)==2)
        set_pdata_*(ent,offset)


Для меня, результат был на лицо: мой сервер падал через каждые 2 часа, но после того как добавил данные проверки во все плагины, ZM сервер набитый плагинами онлайн уже около 60 часов.

Удачного вам полёта! :)

Отредактировал: Empower, - 3.8.2011, 23:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 11 раз
   Цитировать сообщение
Статус пользователя imba
сообщение 3.8.2011, 22:34
Сообщение #2
Стаж: 16 лет

Сообщений: 1677
Благодарностей: 735
Полезность: 571

Цитата
AMXX BinLoger

Где найти?
Гугл в потерях...


!
Запрет на ответ в темах до: 10.11.29392, 21:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sanya
сообщение 3.8.2011, 22:41
Сообщение #3


Стаж: 15 лет

Сообщений: 96
Благодарностей: 25
Полезность: 204

Мне тоже интересно где найти?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 3.8.2011, 22:42
Сообщение #4
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Уже не помню где я его взял. Вот держите. В архив кинул сам логер и програму для чтения его бинарных логов. Добавил еще архив для линукс.

Отредактировал: Empower, - 3.8.2011, 22:48
Прикрепленные файлы:
Прикрепленный файл  BinLoger.rar ( 183,92 килобайт ) Кол-во скачиваний: 39
Прикрепленный файл  BinLoger_linux.rar ( 176,25 килобайт ) Кол-во скачиваний: 46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 8 раз
   + Цитировать сообщение
Статус пользователя imba
сообщение 3.8.2011, 22:46
Сообщение #5
Стаж: 16 лет

Сообщений: 1677
Благодарностей: 735
Полезность: 571

Бред какой то...половина плагинов с ним выдала ошибки и bad load
Цитата
[ 1] AMX Mod X RUN - amxmodx_bl_mm.dl v1.76d ini ANY ANY

Хотя это все объясняет.

Отредактировал: imba, - 3.8.2011, 22:49


!
Запрет на ответ в темах до: 10.11.29392, 21:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 3.8.2011, 22:51
Сообщение #6
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(Empower @ 3.8.2011, 23:21) *
... используя старенький, но очень полезный AMXX BinLoger

Ето отредактированый amxmodx v1.76d.

Отредактировал: Empower, - 3.8.2011, 22:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Cracky
сообщение 3.8.2011, 22:52
Сообщение #7


Стаж: 15 лет

Сообщений: 768
Благодарностей: 197
Полезность: 506

Полезная хренотень, спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
TEROR^
сообщение 3.8.2011, 23:35
Сообщение #8
Стаж: 16 лет

Сообщений: 577
Благодарностей: 251
Полезность: 0

Этот фикс на оленях уже давно
Куда автор смотрит, я хз
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 4.8.2011, 0:03
Сообщение #9
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

На alliedmods или, как вы его называете, на "оленях" есть все что и здесь + еще больше. Прикажете не создавать на етом сайте темы? ИМХО, несете бред.

Отредактировал: Empower, - 4.8.2011, 1:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 7 раз
   + Цитировать сообщение
Статус пользователя kievlan
сообщение 5.8.2011, 0:00
Сообщение #10
Стаж: 16 лет

Сообщений: 40
Благодарностей: 1
Полезность: 21

Плохо смотрели... вот https://forums.alliedmods.net/showthread.php?t=135530
только бинарника чего-то не вижу

Отредактировал: kievlan, - 5.8.2011, 0:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 5.8.2011, 0:24
Сообщение #11
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(kievlan @ 5.8.2011, 1:00) *
Плохо смотрели... вот https://forums.alliedmods.net/showthread.php?t=135530
только бинарника чего-то не вижу

Ето моя же тема с alliedmods.net. ЛОЛ =)

Отредактировал: Empower, - 5.8.2011, 0:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kievlan
сообщение 5.8.2011, 1:16
Сообщение #12
Стаж: 16 лет

Сообщений: 40
Благодарностей: 1
Полезность: 21

Цитата(Empower @ 5.8.2011, 1:24) *
Ето моя же тема с alliedmods.net. ЛОЛ =)

Я так и понял.
Я бы не отвечал, но по сути у меня такая же проблема возникает. Пару часов держится а потом падает, учитывая то что плагинов на сервере почти нет. Как исправить хз.

Отредактировал: kievlan, - 5.8.2011, 1:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 5.8.2011, 10:06
Сообщение #13
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(kievlan @ 5.8.2011, 2:16) *
Я так и понял.
Я бы не отвечал, но по сути у меня такая же проблема возникает. Пару часов держится а потом падает, учитывая то что плагинов на сервере почти нет. Как исправить хз.

autobuyfix? dlfix? dproto last?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя L_O_T_U_S
сообщение 6.8.2011, 2:59
Сообщение #14


Стаж: 17 лет

Сообщений: 555
Благодарностей: 32
Полезность: 89

таже проблема.
сервер с AMXX часто падает , сервер только стим протокол ! стоит пару плагинов .
У меня Gentoo автор темы подскажи как пользоватся правильно теми файлами что выложил ???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Monyak
сообщение 6.8.2011, 10:28
Сообщение #15


Стаж: 16 лет

Сообщений: 10
Благодарностей: 2
Полезность: 0

Я так понимаю вместе с ним надо поставить стандартный набор плагинов для 1.76? Или как еще сохранить работоспособность большинства плагинов?
П.С. А создатели сего чуда не думали над новой версией?) Хотя бы какие-то контакты оставили...

Отредактировал: Monyak, - 6.8.2011, 10:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 6.8.2011, 15:41
Сообщение #16
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(L_O_T_U_S @ 6.8.2011, 3:59) *
таже проблема.
сервер с AMXX часто падает , сервер только стим протокол ! стоит пару плагинов .
У меня Gentoo автор темы подскажи как пользоватся правильно теми файлами что выложил ???

Перед началом использования советую отключить все плагины и пустить сервер в свободное плавание дабы убедиться что дело именно в них.

Использование:

Замени свой amxmodx_mm_i386.so на тот что из архива. Бинарные логи будут писатся в папку data\binlogs. Читать их можно увы только на Win с помощю .exe файла из архива.

Да и еще взависимости от мощности твоего процессора сервер будет в той или иной мере подтормаживать во время BinLog-инга.

Цитата(Monyak @ 6.8.2011, 11:28) *
Я так понимаю вместе с ним надо поставить стандартный набор плагинов для 1.76? Или как еще сохранить работоспособность большинства плагинов?
П.С. А создатели сего чуда не думали над новой версией?) Хотя бы какие-то контакты оставили...

Создатели - AMXX Dev Team. После 1.76d они перестали делать BinLog. Погугли, если интересно - когда-то видел Bailopan об етом писал.

Отредактировал: Empower, - 7.8.2011, 14:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Monyak
сообщение 6.8.2011, 16:49
Сообщение #17


Стаж: 16 лет

Сообщений: 10
Благодарностей: 2
Полезность: 0

Цитата(Empower @ 6.8.2011, 16:41) *
Создатели - AMXX Dev Team. После 1.76d они перестали делать BinLog. Погугли, если интересно - когда-то видел Bailopan об етом писал.

Downloads for "Bin Logging" builds have been removed. These builds had terrible performance and were fairly unusable. They also had little use to the development team in fixing actual problems. If your plugin crashes, file a bug report and the development team can work with you in determining the cause.
Цитата(Empower @ 6.8.2011, 16:41) *
Заменил свой amxmodx_mm_i386.so на тот что из архива.

И больше ничего? Плагины не ругались?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя L_O_T_U_S
сообщение 6.8.2011, 20:52
Сообщение #18


Стаж: 17 лет

Сообщений: 555
Благодарностей: 32
Полезность: 89

За день работы сервера в data\binlogs 65 файлов (500 mb)


Отредактировал: L_O_T_U_S, - 6.8.2011, 21:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Factor
сообщение 6.8.2011, 23:14
Сообщение #19


Стаж: 14 лет

Сообщений: 388
Благодарностей: 57
Полезность: 142

Вообще такое первый раз вижу, в смысле ошибку), у меня только одна фича вылезает иногда - SZ_GetSpace: overflow on Client Datagram, ничего не помогает... trah.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 9.8.2011, 11:42
Сообщение #20
Стаж: 17 лет

Сообщений: 298
Благодарностей: 945
Полезность: 0

Цитата(Factor @ 7.8.2011, 0:14) *
Вообще такое первый раз вижу, в смысле ошибку), у меня только одна фича вылезает иногда - SZ_GetSpace: overflow on Client Datagram, ничего не помогает... trah.gif

1) Попробуй принудительно понизить рейтовые настройки игрокам сервера (Кроме rate).
2) Канал слабый может быть. Одним из решений етой проблемы являеться понижение количества слотов.
3) Какой-то ужасный плагин, посылающий кучу пакетов для одновления ефекта какого-нибудь. Например lasermines обновляет луч своих лазеров каждую 0.01 секунду (по стандарту) при етом посылая по пакету в 39 байт всем на сервере. Естественно у клиентов с низкой закачкой начинаються лаги и SZ_GetSpace: overflow on Client Datagram. Аура Немесиса (zombie plague) обновляеться через 0.1 сек при етом посылая пакеты в 25 байт всем кто видит даного немесис, поетому в моде Survivors vs Nemesis (где много Nemesis) у многих возникают лаги.
Цитата(L_O_T_U_S @ 6.8.2011, 21:52) *
За день работы сервера в data\binlogs 65 файлов (500 mb)

У меня тоже такое было, когда первый раз логи записывал. Ни один файл не читалься из записаного. Удалил логи перезагрузил сервер. Начал запись заново. И больше проблема не наблюдалась.

Отредактировал: Empower, - 9.8.2011, 12:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: