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 linux@valvesoftware.com
ОС
Linux
Amx Mod X
1.10.0.5392
C++
Билд
3.7.0.694-dev
C++
ReGamedll
5.15.0.457-dev
C++
Версия Metamod
v1.3.0.128
C++
Список метамодулей
[ 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
C++
Список плагинов
[  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
C++
Автор плагина
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;
}
C++
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.
 

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

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