Краш сервера в функции vfprintf (hlds 6153 beta) |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Краш сервера в функции vfprintf (hlds 6153 beta) |
SISA
|
5.10.2016, 5:25
Сообщение
|
|
|
После перевода толстого сервера с 5787 на 6153 Beta, столкнулся с крашами, которых до селе не было
После сбора данных, определился круг подозреваемых функций vfprintf и SV_SendClientDatagram и как впоследствии оказалось, запись битых данных в sizebuf_t При отправке большого объема данных клиенту, есть вероятность записи битых значений в SendClientDatagram и дальнейшей порчи памяти. Как итог, в консоли сервера можно получить вот такую чехарду: Цитата SZ_GetSpace: overflow on г‰—ARNING: msg overflowed for ZM=EVILZCS=RO [13] SZ_GetSpace: overflow on AВЃЕЃЖЃ SZ_GetSpace: overflow on C ~AВЃЕЃЖЃ и в последствии неминуемый краш с сигфаулом: Цитата #0 0xf74ec488 in vfprintf () from /lib32/libc.so.6 #1 0xf7512753 in vsnprintf () from /lib32/libc.so.6 #2 0xf6f6bb73 in Con_Printf (fmt=0xf6fb57c0 "SZ_GetSpace: overflow on %s\n") at ../engine/sys_dll.c:2415 #3 0xf6f3775b in SZ_GetSpace (buf=0xff8a41bc, length=1) at ../engine/common.c:1762 из-за битой памяти, причины краша могут быть и другие, но чаще именно с overflow Как оказалось, я далеко не первый, кто столкнулся с аналогичной проблемой: https://aghl.ru/forum/viewtopic.php?f=10&t=2301 В ReHLDS этот баг пофикшен. В 5787 небольшие вылезания за пределы буфера ничего не портят, по этому там крашей нет. Возникновение такой проблемы, возможно только на толстых модовых серверах, где игрокам шлется чрезмерно много всякой каши. В архиве добавил патченный engine_i486 (спасибо товарищу Lev) под билд 6153 бета. Ставить только тем, у кого реально есть краши с такой причиной и нет возможности переходить на ReHLDS.
engine_i486.zip ( 1,2 мегабайт )
Кол-во скачиваний: 21
Отредактировал: SISA, - 5.10.2016, 5:32
|
Поблагодарили 3 раз
|
|
![]() ![]() |