Краш сервера

Сообщения
198
Реакции
16
Помог
1 раз(а)
Ошибка
[ReAPI] get_member: invalid or uninitialized entity
ОС
Linux
Amx Mod X
1.9.0
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.7.0.687-dev
Build date: 23:07:00 Aug 29 2019 (1965)
Build from: https://github.com/dreamstalker/rehlds/commit/4e4690b
ReGamedll
ReGameDLL version: 5.11.0.394-dev
Build date: 18:45:35 Aug 29 2019
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/3aa9872
Версия Metamod
Metamod v1.21p37  2013/05/30 (5:13)
by Will Day
http://www.metamod.org/
Patch: Metamod-P (mm-p) v37
by Jussi Kivilinna
http://metamod-p.sourceforge.net/
compiled: May 30 2013, 11:41:16 EET (optimized)
Список метамодулей
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] VoiceTranscoder RUN - VoiceTranscoder. v2017RC3 ini ANY ANY
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 3] Reunion RUN - reunion_mm_i386. v0.1.0.9 ini Start Never
[ 4] ReAuthCheck RUN - reauthcheck_mm_i v0.1.6 ini Start Never
[ 5] MySQL RUN - mysql_amxx_i386. v1.9.0.5 pl2 ANY ANY
[ 6] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl2 ANY ANY
[ 7] ReAPI RUN - reapi_amxx_i386. v5.9.0.1 pl2 ANY Never
[ 8] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl2 ANY ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl2 ANY ANY
[10] Engine RUN - engine_amxx_i386 v1.9.0.5 pl2 ANY ANY
[11] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl2 ANY ANY
11 plugins, 11 running
Список плагинов
core.amxx
доброго времени суток. сервер упал, в логах [ReAPI] get_member: invalid or uninitialized entity

собственно, код

C++:
for(new i = 1; i <= MaxClients; i++)
    {
        if(is_user_connected(i))
        {
            new TeamName:iTeam = get_member(i, m_iTeam);
            iPlayersNum[iTeam]++;
            
            if(is_user_alive(i))
            {
                iAlivePlayersNum[iTeam]++;
            }
        }
    }
 
Сообщения
61
Реакции
14
что то краши зачастились, что не тема то краш
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
Alex1985, плагин джаил кор, его в общем доступе нет, поэтому писать название смысла нет. я дал код, который крашнул. это произошло всего 1 раз за месяц, но произошло, поэтому хочу исправить
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
headway, в основном из-за функций реапи. не осуждаю, просто наблюдения

Alex1985, а при чем здесь автор мода, если речь о конкретном куске кода?
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
Alex1985, я тебе говорю что мода нет в свободном доступе, а ты мне "чтобы почитать на др. форуме". кто тут глупый ещё?
не оффтопь. не знаешь решение - молчи
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
Алексеич, он мой, обращайтесь

в общем, как я понял, краш произошёл не из-за get_member, а из-за показа худа невалидному игроку. вопрос тогда следующий, может ли is_user_connected пропустить игрока? пропуск был 2 раза, сначала в цикле с get_member (из-за чего выбило ошибку), а затем в показе худа из-за чего произошел краш
 
Сообщения
432
Реакции
410
Помог
14 раз(а)
kucklovod ты меня видимо не так понял, у ботов connected всегда будет false, я имел в виду что проблема не в is_user_connected :smile3:
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
voed, тогда в чём? цикл из таймера, таймер запускается в plugin_init (может это важно), в нем возникла эта ошибка (с get_member) и краш (уже в показе худа, я думаю)
 
Сообщения
432
Реакции
410
Помог
14 раз(а)
kucklovod, надо логировать-дебажить, по коду вроде бы все ок
Смотри, какой id у этого игрока-неигрока, его класснейм и прочие параметры
 
Сообщения
845
Реакции
523
Помог
13 раз(а)
Код:
if(is_user_connected(i))
        {
            new TeamName:iTeam = get_member(i, m_iTeam);
разве is_user_connected гарантирует что private data инициализирована? насколько я знаю, нет.
Игрок может приконнектиться, но не выбрать команду - в этот момент его приват дата не инициализирована
 
Сообщения
432
Реакции
410
Помог
14 раз(а)
Код:
if(is_user_connected(i))
        {
            new TeamName:iTeam = get_member(i, m_iTeam);
разве is_user_connected гарантирует что private data инициализирована? насколько я знаю, нет.
Игрок может приконнектиться, но не выбрать команду - в этот момент его приват дата не инициализирована
is_user_connected это прохождение putinserver
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
BalbuR, в том то и дело, что да. я читал, гуглил инфу. другое дело - почему здесь так вышло, что is_user_connected пропустил невелидого игрока
 

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
Всё это мне напомнило фейкмету и pev_valid().
Ентити считается валидной если pev_valid() == 1, но pData трогать нельзя пока pev_valid() не будет == 2.
get_member: invalid or uninitialized entity
A get_member() также работает с pvPrivateData.

Логируй ответ pev_valid(player) до вызова get_member(), и посмотри результаты при очередном падении.
 
Сообщения
198
Реакции
16
Помог
1 раз(а)
Ayk, здравствуй, выполнено. if(!pev_valid(i)) server_print("%n невалидный зашёл", i);

весь код:
Код:
for(new i = 1; i <= MaxClients; i++)
    {
        if (is_user_connected(i))
        {
            if(!pev_valid(i)) server_print("%n невалидный зашёл", i);
          
            new TeamName:iTeam = get_member(i, m_iTeam);
            iPlayersNum[iTeam]++;
          
            if (is_user_alive(i))
            {
                iAlivePlayersNum[iTeam]++;
            }
        }
    }


логи:

Код:
ЕНОТ невалидный зашёл
L 11/20/2019 - 09:10:26: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:26: [AMXX] Displaying debug trace (plugin "jbe_core.amxx", version "2.1.1.0")
L 11/20/2019 - 09:10:26: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:26: [AMXX]    [0] jbe_core.sma::JBE_Main_Informer (line 10816)
L 11/20/2019 - 09:10:26: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:26: [AMXX] Displaying debug trace (plugin "jbe_rank.amxx", version "unknown")
L 11/20/2019 - 09:10:26: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:26: [AMXX]    [0] jbe_rank.sma::Task_Online_Check (line 106)
ЕНОТ невалидный зашёл
L 11/20/2019 - 09:10:27: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:27: [AMXX] Displaying debug trace (plugin "jbe_core.amxx", version "2.1.1.0")
L 11/20/2019 - 09:10:27: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:27: [AMXX]    [0] jbe_core.sma::JBE_Main_Informer (line 10816)
L 11/20/2019 - 09:10:27: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:27: [AMXX] Displaying debug trace (plugin "jbe_rank.amxx", version "unknown")
L 11/20/2019 - 09:10:27: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:27: [AMXX]    [0] jbe_rank.sma::Task_Online_Check (line 106)
ЕНОТ невалидный зашёл
L 11/20/2019 - 09:10:28: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:28: [AMXX] Displaying debug trace (plugin "jbe_core.amxx", version "2.1.1.0")
L 11/20/2019 - 09:10:28: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:28: [AMXX]    [0] jbe_core.sma::JBE_Main_Informer (line 10816)
L 11/20/2019 - 09:10:28: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:28: [AMXX] Displaying debug trace (plugin "jbe_rank.amxx", version "unknown")
L 11/20/2019 - 09:10:28: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:28: [AMXX]    [0] jbe_rank.sma::Task_Online_Check (line 106)
ЕНОТ невалидный зашёл
L 11/20/2019 - 09:10:29: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:29: [AMXX] Displaying debug trace (plugin "jbe_core.amxx", version "2.1.1.0")
L 11/20/2019 - 09:10:29: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:29: [AMXX]    [0] jbe_core.sma::JBE_Main_Informer (line 10816)
L 11/20/2019 - 09:10:29: [ReAPI] get_member: invalid or uninitialized entity
L 11/20/2019 - 09:10:29: [AMXX] Displaying debug trace (plugin "jbe_rank.amxx", version "unknown")
L 11/20/2019 - 09:10:29: [AMXX] Run time error 10: native error (native "get_member")
L 11/20/2019 - 09:10:29: [AMXX]    [0] jbe_rank.sma::Task_Online_Check (line 106)
ЕНОТ невалидный зашёл

выходит, что игрока пропускает is_user_connected. забавно.
 
Сообщения
1,293
Реакции
2,294
Помог
57 раз(а)
Код:
(line 10816)
матерь божья...

kucklovod,
в каком месте этот код выполняется?
ботов не бывает на сервере? Этот ЕНОТ не бот? А то кароч у меня мм-подботы (вроде) в putinserver'е тоже ещё пдаты не имеют

чёт наркоманией какой-то пахнет
Код:
        if (is_user_connected(i))
        {
            if(!pev_valid(i)) server_print("%n невалидный зашёл", i);
https://github.com/alliedmodders/am...46ae37cbcd6d572/modules/fakemeta/pev.cpp#L461

FNullEnt не пойму где вообще объявлено (откуда берётся)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу