NetStats_MessagesReceived - краш сервера -
x_O - 16.02.2014
Добрый день!
Функция NetStats_MessagesReceived в односекундном таймере крашит сервер.
Крашы происходили и раньше (в 0.3x), когда приходилось парсить данные GetPlayerNetworkStats
Код:
pawn Code:
var = NetStats_MessagesReceived(i);
if(var - MessagesCount[i] > 1000) {
printf("playerid: %i, messagesReceived: %i messagesCount %i", i, var, MessagesCount[i]);
Ban(i);
continue;
}
else MessagesCount[i] = var;
[15/02/14 16:23:52] [debug] Server crashed while executing
GameMode.amx
[15/02/14 16:23:52] [debug] AMX backtrace:
[15/02/14 16:23:52] [debug] #0 native
NetStats_MessagesReceived () [080d9ec0] from samp03svr
[15/02/14 16:23:52] [debug] #1 000ebe50 in
public TimerOneSecond () from
GameMode.amx
[15/02/14 16:23:52] [debug] Native backtrace:
[15/02/14 16:23:52] [debug] #0 006d360b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #1 006cae92 in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #2 006cc8d9 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #3 006d32a0 in ?? () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #4 00d8c410 in ?? ()
[15/02/14 16:23:52] [debug] #5 08082a46 in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #6 0807e43c in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #7 0806fd49 in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #8 080d9f08 in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #9 08093d84 in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #10 006ca5fc in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #11 006cf15c in ?? () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #12 006d764d in amx_Exec () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #13 006ccabb in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #14 006cf100 in ?? () from plugins/crashdetect.so
[15/02/14 16:23:52] [debug] #15 080e57a5 in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #16 080acedb in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #17 080a81ae in ?? () from ./samp03svr
[15/02/14 16:23:52] [debug] #18 001cece6 in __libc_start_main () from /lib/libc.so.6
[15/02/14 16:23:52] [debug] #19 0804b4a1 in ?? () from ./samp03svr
Re: NetStats_MessagesReceived - краш сервера -
x_O - 16.02.2014
Почему?
Re: NetStats_MessagesReceived - краш сервера -
DartfoL - 16.02.2014
Лучше об этом сообщить в иностранный раздел Bug reports
Re: NetStats_MessagesReceived - краш сервера -
][Noname][ - 16.02.2014
пробуй проверять перед проверкой этим
NetStats_ConnectionStatus
Re: NetStats_MessagesReceived - краш сервера -
][Noname][ - 18.02.2014
Подтверждаю
Вызывает краш также как и GetPlayerNetworkStats
Re: NetStats_MessagesReceived - краш сервера -
cm666 - 18.02.2014
Это бывает рандомно или при какихто случаях ?
Re: NetStats_MessagesReceived - краш сервера -
][Noname][ - 18.02.2014
Это рандомно и на столько редко что невозможно выяснить с чем это связано, т.е. раз в секунду на пару сотен человек она проверяется, и может раз в неделю только вызывать краш
т.к. ракнет идёт в отдельном потоке, то видимо это проблема многопоточности
отсутствие мьютексов все дела
Re: NetStats_MessagesReceived - краш сервера -
][Noname][ - 20.02.2014
NetStats_ConnectionStatus
не поможет
Re: NetStats_MessagesReceived - краш сервера -
x_O - 12.03.2014
Я удалил функцию
NetStats_MessagesReceived.
Теперь функция
NetStats_BytesReceived вызывает аналогичную проблему
pawn Code:
for(new i, m = GetMaxPlayers(); i < m; i ++) {
if(!IsPlayerConnected(i)) continue;
f_var[1] = NetStats_BytesReceived(i);
if(f_var[1] - BytesCount[i] > 7500) {
Ban(i);
continue;
}
else BytesCount[i] = f_var[1];
...
}
[debug] Server crashed while executing
GameMode.amx
[debug] AMX backtrace:
[debug] #0 native
NetStats_BytesReceived () [080d9f60] from samp03svr
[debug] #1 000f0008 in public
TimerOneSecond () from
GameMode.amx
...
p.s. Я бы не использовал эти функции, но как защититься от дос атак?
Re: NetStats_MessagesReceived - краш сервера -
Stepashka - 12.03.2014
Quote:
Originally Posted by x_O
Я удалил функцию NetStats_MessagesReceived.
Теперь функция NetStats_BytesReceived вызывает аналогичную проблему
pawn Code:
for(new i, m = GetMaxPlayers(); i < m; i ++) { if(!IsPlayerConnected(i)) continue;
f_var[1] = NetStats_BytesReceived(i); if(f_var[1] - BytesCount[i] > 7500) { Ban(i); continue; } else BytesCount[i] = f_var[1]; ... }
[debug] Server crashed while executing GameMode.amx
[debug] AMX backtrace:
[debug] #0 native NetStats_BytesReceived () [080d9f60] from samp03svr
[debug] #1 000f0008 in public TimerOneSecond () from GameMode.amx
...
p.s. Я бы не использовал эти функции, но как защититься от дос атак?
|
ИМХО сама идея того что досер будет в это время находиться на сервере абсурдна.
Re: NetStats_MessagesReceived - краш сервера -
Jon_De - 12.03.2014
Quote:
Originally Posted by Stepashka
ИМХО сама идея того что досер будет в это время находиться на сервере абсурдна.
|
А где ему еще находиться?
Re: NetStats_MessagesReceived - краш сервера -
Makar93 - 12.03.2014
Quote:
Originally Posted by Jon_De
А где ему еще находиться?
|
Разные досеры бывают, для некоторых достаточно IP сервера. А отследить кучу пакетов с одного и того же IP клиента уже сложнее чем с конкретного игрока.
Re: NetStats_MessagesReceived - краш сервера -
x_O - 12.03.2014
В 0.3z обновляли защиту. Кто-нибудь проверял, работает ли она от пакетов, чтобы убрать из мода самописную защиту, которую я выкладывал выше?
Re: NetStats_MessagesReceived - краш сервера -
cm666 - 12.03.2014
У меня неделю назад был жесткий флуд Packet was modified, sent by id и сервер не кикнул игрока. Те внутреная защита сампа не сработала почемуто.
Re: NetStats_MessagesReceived - краш сервера -
][Noname][ - 12.03.2014
Quote:
Originally Posted by x_O
В 0.3z обновляли защиту. Кто-нибудь проверял, работает ли она от пакетов, чтобы убрать из мода самописную защиту, которую я выкладывал выше?
|
уже больше года работает эта защита