Server crashes with AuthEmu

Сообщения
18
Реакции
3
Ошибка
warning: core file may not match specified executable file.
Cannot access memory at address 0xf77298f8
Cannot access memory at address 0xf77298f4
debug.cmds:1: Error in sourced command file:
Cannot access memory at address 0xffd1d7f4
email debug.log to [email protected]
ОС
Linux
Amx Mod X
1.10.0.5392
Билд
3.7.0.694-dev
ReGamedll
5.15.0.457-dev
Версия Metamod
v1.3.0.128
Список метамодулей
[ 1] SafeNameAndChat  RUN   -    SafeNameAndChat.so        v1.1               ini  ANY   ANY  
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.135 ini Start Never
[ 3] AMX Mod X RUN - amxmodx_mm_i386.so v1.10.0.5392 ini Start ANY
[ 4] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 5] Revoice RUN - revoice_mm_i386.so v0.1.0.34 ini Start Never
[ 6] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 7] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 8] SQLite RUN - sqlite_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[10] Engine RUN - engine_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[11] FakeMeta RUN - fakemeta_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[12] CStrike RUN - cstrike_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[13] CSX RUN - csx_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[14] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.10.0.5392 pl3 ANY ANY
[15] ReAPI RUN - reapi_amxx_i386.so v5.12.0.192-dev pl3 ANY Never
[16] AuthEmu RUN - authemu_amxx_i386.so v4.2.12.311-dev+m pl3 ANY Never
Список плагинов
[  1] Advanced Bans           0.8.1       Exolent           advanced_bans.a  running  
[ 2] Admin Base 1.10.0.539 AMXX Dev Team admin.amxx running
[ 3] Admin Commands 1.10.0.539 AMXX Dev Team admincmd.amxx running
[ 4] Admin Help 1.10.0.539 AMXX Dev Team adminhelp.amxx running
[ 5] Slots Reservation 1.10.0.539 AMXX Dev Team adminslots.amxx running
[ 6] Multi-Lingual System 1.10.0.539 AMXX Dev Team multilingual.am running
[ 7] Menus Front-End 1.10.0.539 AMXX Dev Team menufront.amxx running
[ 8] Commands Menu 1.10.0.539 AMXX Dev Team cmdmenu.amxx running
[ 9] Players Menu 1.10.0.539 AMXX Dev Team plmenu_ab_base. running
[ 10] Maps Menu 1.10.0.539 AMXX Dev Team mapsmenu.amxx running
[ 11] Plugin Menu 1.10.0.539 AMXX Dev Team pluginmenu.amxx running
[ 12] OciXCrom's Admin Chat 3.1 OciXCrom adminchat_ocixc running
[ 13] Chat Manager 4.5.1 OciXCrom crx_chatmanager running
[ 14] Anti Flood 1.10.0.539 AMXX Dev Team antiflood.amxx running
[ 15] Scrolling Message 1.10.0.539 AMXX Dev Team scrollmsg.amxx running
[ 16] Info. Messages 1.10.0.539 AMXX Dev Team imessage.amxx running
[ 17] Admin Votes 1.10.0.539 AMXX Dev Team adminvote.amxx running
[ 18] NextMap 1.10.0.539 AMXX Dev Team nextmap.amxx running
[ 19] Nextmap Chooser 1.10.0.539 AMXX Dev Team mapchooser.amxx running
[ 20] TimeLeft 1.10.0.539 AMXX Dev Team timeleft.amxx running
[ 21] Pause Plugins 1.10.0.539 AMXX Dev Team pausecfg.amxx running
[ 22] Stats Configuration 1.10.0.539 AMXX Dev Team statscfg.amxx running
[ 23] Restrict Weapons 1.10.0.539 AMXX Dev Team restmenu.amxx running
[ 24] CS Misc. Stats 1.10.0.539 AMXX Dev Team miscstats.amxx running
[ 25] StatsX (MastaMan Editi 1.10.0.539 AMXX Dev Team gs_statsx.amxx running
[ 26] AuthEmu API 1.0 Dev-MS Team authemu.amxx running
[ 27] Chats Additions Core 1.0.0-beta Sergey Shorokhov ChatAdditions_C running
[ 28] [CA] Gag 1.0.0-beta Sergey Shorokhov CA_Gag.amxx running
[ 29] [CA] Mute menu 1.0.0-beta Sergey Shorokhov CA_Mute.amxx running
Автор плагина
Dev-MS Team
Версия плагина
1.0
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <authemu>

new const VERSION[] = "1.0";
new const g_szCfgFile[] = "authemu.ini";

enum
{
SECTION_NONE,
SECTION_LOG,
SECTION_PUNISH
};

const TASK_PUNISH_ID = 548678;

new g_iPunishDetect, g_iLogDetect, g_iPunishTime;
new g_szPunishReason[64], g_szPunishString[192], g_szLogString[192];

public plugin_init()
{
register_plugin("AuthEmu API", VERSION, "Dev-MS Team");

register_concmd("aemuinfo", "cmdClientInfo", ADMIN_BAN, "<name or #userid>");
register_concmd("aemulist", "cmdClientList", ADMIN_BAN);

ReadCfg();
}

public client_disconnected(id)
{
remove_task(id + TASK_PUNISH_ID);
}

public aemu_dac_query(const id, const DAC_QueryType:type)
{
switch (type)
{
case DAC_QUERY_DETECT:
{
if (g_iLogDetect)
{
new szModulePath[128], szModuleHash[32]
new iDacReason = aemu_dac_get_reason();

aemu_dac_get_module(szModulePath, sizeof(szModulePath), true);
formatex(szModuleHash, charsmax(szModuleHash), "%X", aemu_dac_get_module_hash());

LogDetect(id, iDacReason, szModulePath, szModuleHash);
}

if (g_iPunishDetect)
{
remove_task(id + TASK_PUNISH_ID);
set_task(1.0, "TaskPunishPlayer", id + TASK_PUNISH_ID);
}
}
}

return PLUGIN_CONTINUE;
}

public TaskPunishPlayer(id)
{
id -= TASK_PUNISH_ID;

PunishPlayer(id);
}

public cmdClientInfo(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;

new arg[32];
read_argv(1, arg, charsmax(arg));
new player = cmd_target(id, arg, CMDTARGET_NO_BOTS);

if (!player)
return PLUGIN_HANDLED

// It's authemu client?
if (!is_user_authemu(player))
{
console_print(id, " clientinfo: This target:(%i) isn't it authemu client.", player);
return PLUGIN_HANDLED;
}

// Print client info
console_print(id, "^nClient info:");

new szDate[64], szBranch[64], szUIDHash[11];
format_time(szDate, charsmax(szDate), "%X %b %d %Y", aemu_get_clientinfo(player, aci_lasttime_upd));
aemu_get_clientinfo(player, aci_packname, szBranch, charsmax(szBranch));
aemu_get_clientinfo(player, aci_unique_id, szUIDHash, charsmax(szUIDHash));

console_print(id, " Build: %i (%X) (%s) - %s", aemu_get_clientinfo(player, aci_build), aemu_get_clientinfo(player, aci_hash), szDate, szBranch);
console_print(id, " Steam: %s", aemu_get_clientinfo(player, aci_steam) ? "Yes" : "No");
console_print(id, " Beta: %s", aemu_get_clientinfo(player, aci_beta) ? "Yes" : "No");
console_print(id, " UID: %s", szUIDHash);

// Print desktop screen info
console_print(id, "^nScreen info:");

new wide, tall;
aemu_get_desk_screeninfo(player, wide, tall);
console_print(id, " %ix%i (Desktop)", wide, tall);

aemu_get_game_screeninfo(player, wide, tall);
console_print(id, " %ix%i (Game)", wide, tall);

// Print OS info
console_print(id, "^nOS info:");
console_print(id, " Type %i", aemu_get_clientinfo(player, aci_OS_type));

new szOSName[32];
aemu_get_clientinfo(player, aci_OS_name, szOSName, charsmax(szOSName));
console_print(id, " Name: %s", szOSName);
console_print(id, " Build %i", aemu_get_clientinfo(player, aci_OS_build));
console_print(id, " Major %i", aemu_get_clientinfo(player, aci_OS_majorVersion));
console_print(id, " Minor %i", aemu_get_clientinfo(player, aci_OS_minorVersion));

return PLUGIN_HANDLED;
}

public cmdClientList(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED;

new szName[32], szIp[22], szTime[6];
console_print(id, "^n^n------------------------------------------------------------------------------^n");
console_print(id, "%-2s %-32s %-6s %-5s %-21s %s", "#", "Name", "Userid", "Time", "IP", "Authemu");
for (new i = 1; i <= get_maxplayers(); i++)
{
if (!is_user_connecting(i) && !is_user_connected(i))
continue;

get_user_name(i, szName, charsmax(szName));
get_user_ip(i, szIp, charsmax(szIp));
get_user_play_time(i, szTime, charsmax(szTime));

console_print(id, "%-2i %-32s %-6i %-5s %-21s %s", i, szName, get_user_userid(i), szTime, szIp, is_user_authemu(i) ? "yes" : "no");
}

console_print(id, "^n------------------------------------------------------------------------------^n^n");
return PLUGIN_HANDLED;
}

stock PunishPlayer(const id)
{
new szUserId[10], szSteam[33], szIp[17], szTime[10], szPunishString[128];

formatex(szUserId, charsmax(szUserId), "#%d", get_user_userid(id));

get_user_authid(id, szSteam, charsmax(szSteam));
get_user_ip(id, szIp, charsmax(szIp), 1);

num_to_str(g_iPunishTime, szTime, charsmax(szTime));

copy(szPunishString, charsmax(szPunishString), g_szPunishString);

replace_string(szPunishString, charsmax(szPunishString), "[userid]", szUserId);
replace_string(szPunishString, charsmax(szPunishString), "[steam]", szSteam);
replace_string(szPunishString, charsmax(szPunishString), "[ip]", szIp);
replace_string(szPunishString, charsmax(szPunishString), "[reason]", g_szPunishReason);
replace_string(szPunishString, charsmax(szPunishString), "[time]", szTime);

server_cmd("%s", szPunishString);
}

stock LogDetect(const id, iDacReason, szModulePath[], szModuleHash[])
{
new szFile[32], szDacReason[10], szName[32], szSteam[33], szIp[17], szUniqId[65], szLogString[512];

get_user_name(id, szName, charsmax(szName));
get_user_authid(id, szSteam, charsmax(szSteam));
get_user_ip(id, szIp, charsmax(szIp), 1);

formatex(szDacReason, charsmax(szDacReason), "%i", iDacReason);
copy(szLogString, charsmax(szLogString), g_szLogString);

aemu_get_clientinfo(id, aci_unique_id, szUniqId);

replace_string(szLogString, charsmax(szLogString), "[name]", szName);
replace_string(szLogString, charsmax(szLogString), "[steam]", szSteam);
replace_string(szLogString, charsmax(szLogString), "[ip]", szIp);
replace_string(szLogString, charsmax(szLogString), "[uniqId]", szUniqId);
replace_string(szLogString, charsmax(szLogString), "[reason]", szDacReason);
replace_string(szLogString, charsmax(szLogString), "[module]", szModulePath);
replace_string(szLogString, charsmax(szLogString), "[hash]", szModuleHash);

get_time("AuthEmu_%Y%m%d.log", szFile, charsmax(szFile));
log_to_file(szFile, "%s", szLogString);
}

stock get_user_play_time(id, dest[], const length)
{
new iMinutes = get_user_time(id) / 60;
new iSeconds = get_user_time(id) % 60;

new minutes[3], seconds[3], temp[2];
num_to_str(iMinutes, temp, sizeof(temp));

if (iMinutes >= 10)
{
minutes[0] = temp[0];
minutes[1] = temp[1];
}
else
{
minutes[0] = '0';
minutes[1] = temp[0];
}

minutes[2] = '^0';

num_to_str(iSeconds, temp, sizeof(temp));
if (iSeconds >= 10)
{
seconds[0] = temp[0];
seconds[1] = temp[1];
}
else
{
seconds[0] = '0';
seconds[1] = temp[0];
}

seconds[2] = '^0';

formatex(dest, length, "%s:%s", minutes, seconds);
}

stock ReadCfg()
{
new iSection, szKey[128], szValue[1024];
new szFile[250], szConfigDir[64], szTemp[1024];

get_localinfo("amxx_configsdir", szConfigDir, charsmax(szConfigDir));
formatex(szFile, charsmax(szFile), "%s/%s", szConfigDir, g_szCfgFile);

new fHandle = fopen(szFile, "rt");

while (!feof(fHandle))
{
fgets(fHandle, szTemp, charsmax(szTemp));
trim(szTemp);

if (szTemp[0] == '[')
{
GetCurrentSection(szTemp, iSection);
continue;
}

if (!szTemp[0] || szTemp[0] == ';' || szTemp[0] == '/') continue;

strtok(szTemp, szKey, charsmax(szKey), szValue, charsmax(szValue), '=');
trim(szKey);
trim(szValue);

switch (iSection)
{
case SECTION_LOG:
{
if (equal(szKey, "LOG_DETECT"))
g_iLogDetect = str_to_num(szValue);
else if (equal(szKey, "LOG_STRING"))
copy(g_szLogString, charsmax(g_szLogString), szValue);
}
case SECTION_PUNISH:
{
if (equal(szKey, "PUNISH"))
g_iPunishDetect = str_to_num(szValue);

else if (equal(szKey, "REASON"))
copy(g_szPunishReason, charsmax(g_szPunishReason), szValue);

else if (equal(szKey, "TIME"))
g_iPunishTime = str_to_num(szValue);

else if (equal(szKey, "CMD"))
copy(g_szPunishString, charsmax(g_szPunishString), szValue);
}
}
}

fclose(fHandle);
}

stock GetCurrentSection(szTemp[1024], &iSection)
{
if (contain(szTemp, "LOG") != -1)
iSection = SECTION_LOG;
else if (contain(szTemp, "PUNISH") != -1)
iSection = SECTION_PUNISH;
}
When a player joins the server it crashes immediately.
OS version tested on both Debian 9 & 10.

Debug.log doesn't show anything useful:


[New LWP 27115]
[New LWP 27123]
[New LWP 27119]
[New LWP 27116]
[New LWP 27117]
#0 0xf2550164 in ?? ()
End of crash report

Start command line:
./hlds_linux -game cstrike +ip IP +port 27020 +maxplayers 14 +map de_dust2 +sv_lan 0 +sys_ticrate 1040 -pingboost 3 -secure -nomaster -debug
 
Сообщения
18
Реакции
3
Indeed, forgot about that.

These are the results from Debian 8 (got 1 legacy server)

Segmentation fault (core dumped)
warning: core file may not match specified executable file.
warning: Can't read pathname for load map: Input/output error.
warning: no loadable sections found in added symbol-file cstrike/addons/amxmodx/modules/authemu_amxx_i386.so

CRASH: Wed Apr 1 07:32:15 EEST 2020
Start Line: ./hlds_linux -game cstrike +ip IP +port 27020 +maxplayers 14 +map de_dust2 +sv_lan 0 +sys_ticrate 1040 -pingboost 3 -secure -nomaster -debug -pidfile hlds.14972.pid
[New LWP 14980]
[New LWP 14983]
[New LWP 14984]
[New LWP 14986]
[New LWP 14990]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./hlds_linux -game cstrike +ip IP +port 27020 +maxplayers 14 +map de_'.
Program terminated with signal 11, Segmentation fault.
#0 0xf253a164 in ?? ()
#0 0xf253a164 in ?? ()
#1 0x00000000 in ?? ()
No symbol table info available.
From To Syms Read Shared Object Library
0xf76e4a60 0xf76e59a8 Yes (*) /lib/i386-linux-gnu/i686/cmov/libdl.so.2
0xf7657914 0xf769dc78 Yes ./libstdc++.so.6
0xf75ed4b0 0xf7608188 Yes (*) /lib/i386-linux-gnu/i686/cmov/libm.so.6
0xf749cc90 0xf75ad07c Yes (*) /lib/i386-linux-gnu/i686/cmov/libc.so.6
0xf76f6820 0xf770d05f Yes (*) /lib/ld-linux.so.2
0xf7472e04 0xf7482490 Yes ./libgcc_s.so.1
0xf6da3220 0xf6e89930 Yes (*) /home/user/testsrv/engine_i486.so
0xf6d678c0 0xf6d6b638 Yes (*) /lib/i386-linux-gnu/i686/cmov/librt.so.1
0xf6d555c0 0xf6d5fd74 Yes (*) ./libsteam_api.so
0xf6d3e610 0xf6d4a708 Yes (*) /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
0xf6d21f40 0xf6d338f8 Yes (*) /home/user/testsrv/filesystem_stdio.so
0xf5c24400 0xf6852900 Yes (*) ./steamclient.so
0xf5aa2670 0xf5b18020 Yes (*) ./crashhandler.so
0xf32346a0 0xf3276f70 Yes (*) /home/user/testsrv/./cstrike/addons/metamod/metamod_i386.so
0xf2ff6a80 0xf3173cd0 Yes (*) /home/user/testsrv/cstrike/dlls/cs.so
0xf76e8d00 0xf76e9f40 Yes (*) /home/user/testsrv/cstrike/addons/SafeNameAndChat/SafeNameAndChat.so
0xf2e93840 0xf2eb74e0 Yes (*) /home/user/testsrv/cstrike/addons/reunion/reunion_mm_i386.so
0xf2cbaa10 0xf2d1dde7 Yes (*) /home/user/testsrv/cstrike/addons/amxmodx/dlls/amxmodx_mm_i386.so
0xf2bae2d0 0xf2c8f980 Yes (*) cstrike/addons/amxmodx/modules/sqlite_amxx_i386.so
0xf2b7e660 0xf2b82f84 Yes (*) cstrike/addons/amxmodx/modules/fun_amxx_i386.so
0xf2b65290 0xf2b7180c Yes (*) cstrike/addons/amxmodx/modules/engine_amxx_i386.so
0xf2b269d0 0xf2b52d6c Yes (*) cstrike/addons/amxmodx/modules/fakemeta_amxx_i386.so
0xf2aff9b0 0xf2b03a08 Yes (*) cstrike/addons/amxmodx/modules/nvault_amxx_i386.so
0xf2ae9d50 0xf2af9460 Yes (*) cstrike/addons/amxmodx/modules/cstrike_amxx_i386.so
0xf2a6c120 0xf2a72444 Yes (*) cstrike/addons/amxmodx/modules/csx_amxx_i386.so
0xf2a09830 0xf2a50974 Yes (*) cstrike/addons/amxmodx/modules/hamsandwich_amxx_i386.so
0xf2989540 0xf29c8670 Yes (*) cstrike/addons/amxmodx/modules/reapi_amxx_i386.so
0xf28b8db0 0xf28d45d0 Yes (*) /home/user/testsrv/cstrike/addons/whblocker/whblocker_mm_i386.so
0xf276df70 0xf2872030 Yes (*) /home/user/testsrv/cstrike/addons/revoice/revoice_mm_i386.so
0xf2734b40 0xf273e0b0 Yes (*) /home/user/testsrv/cstrike/addons/reauthcheck/reauthcheck_mm_i386.so
0xf2722b90 0xf272c2f0 Yes (*) /home/user/testsrv/cstrike/addons/resemiclip/resemiclip_mm_i386.so
0xf26a65d0 0xf26ef548 Yes (*) cstrike/addons/amxmodx/modules/regex_amxx_i386.so
Yes (*) cstrike/addons/amxmodx/modules/authemu_amxx_i386.so
(*): Shared library is missing debugging information.
Stack level 0, frame at 0xffe254bc:
eip = 0xf253a164; saved eip 0x0
called by frame at 0xffe254c0
Arglist at 0xffe254b4, args:
Locals at 0xffe254b4, Previous frame's sp is 0xffe254bc
Saved registers:
ebp at 0xffe254b4, eip at 0xffe254b8
End of crash report
 
Сообщения
18
Реакции
3
Bump as over 3 days have passed.
Another weird thing is, that it doesn't always happen.
 

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

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