Raised This Month: $51 Target: $400
 12% 

L4D2 Server Crash


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 02-21-2016 , 04:18   L4D2 Server Crash
Reply With Quote #1

What the reason this crash?
Code:
server_srv.so!CSoundPatch::ChangePitch(float, float) + 0x6
https://crash.limetech.org/3ttvwl5bmp3a

Please, help me..

Last edited by Accelerator; 02-21-2016 at 04:30.
Accelerator is offline
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 06-13-2016 , 09:15   Re: L4D2 Server Crash
Reply With Quote #2

It's actually...
Chainsaw crashes server after update ~2.1.4.3
Full dump:
Code:
0        server_srv.so!CSoundPatch::ChangePitch(float, float) + 0x6
1        server_srv.so!CChainsaw::ItemPostFrame() + 0x7f8
2        server_srv.so!CBasePlayer::ItemPostFrame() + 0x47f
3        server_srv.so!CTerrorPlayer::ItemPostFrame() + 0xba
4        server_srv.so!CBasePlayer::PostThink() + 0xe3b
5        server_srv.so!CCSPlayer::PostThink() + 0xc5
6        server_srv.so!CTerrorPlayer::PostThink() + 0x140
7        server_srv.so!CPlayerMove::RunPostThink(CBasePlayer*) + 0xb7
8        server_srv.so!CPlayerMove::RunCommand(CBasePlayer*, CUserCmd*, IMoveHelper*) + 0x6ce
9        server_srv.so!CBasePlayer::PlayerRunCommand(CUserCmd*, IMoveHelper*) + 0x9c
10        server_srv.so!CCSPlayer::PlayerRunCommand(CUserCmd*, IMoveHelper*) + 0x1d9
11        server_srv.so!CTerrorPlayer::PlayerRunCommand(CUserCmd*, IMoveHelper*) + 0x323
On the server, there are no plug-ins, which would affect the chainsaw. The server falls after, when a lot of players have a chainsaw, and at the same time beginning to use it. The server stops responding, the var rises, falls fps and server crashes.
Any ideas?...
Accelerator is offline
eric0279
AlliedModders Donor
Join Date: May 2007
Old 06-13-2016 , 13:41   Re: L4D2 Server Crash
Reply With Quote #3

strelok74 from l4dnation? ^^



no idea, sorry or test it: remove chainsaw?
eric0279 is offline
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 06-13-2016 , 13:46   Re: L4D2 Server Crash
Reply With Quote #4

Remove chainsaw - no crashes But I would like to find ways to fix it, possibly through NormalSHook?
Accelerator is offline
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 01-16-2017 , 09:31   Re: L4D2 Server Crash
Reply With Quote #5

The problem is still relevant. New crash dump:
Code:
0	server_srv.so + 0x48d1a6
1	server_srv.so + 0x5010a8
2	server_srv.so + 0x3ed16f
3	server_srv.so + 0x4c1afa
4	server_srv.so + 0x76133b
5	server_srv.so + 0x617425
6	server_srv.so + 0x975670
7	server_srv.so + 0x771627
8	server_srv.so + 0x771e3e
9	server_srv.so + 0x750aac
10	server_srv.so + 0x60f979
11	server_srv.so + 0x94bf13
12	sdktools.ext.2.l4d2.so + 0x240e6
13	server_srv.so + 0x94bbf0
14	sdktools.ext.2.l4d2.so + 0x23ff0
15	server_srv.so + 0x768924
16	server_srv.so + 0x739e7a
17	server_srv.so + 0x73a2fa
18	server_srv.so + 0x6829f9
19	sourcemod.2.l4d2.so + 0x2c1de
20	server_srv.so + 0xc1f238
21	server_srv.so + 0x6820b0
22	engine_srv.so + 0x1ddd7f
23	engine_srv.so + 0x1def73
24	engine_srv.so + 0x15f647
25	engine_srv.so + 0x1610ab
26	engine_srv.so + 0x16b730
27	engine_srv.so + 0x16b93e
28	engine_srv.so + 0x16ba49
29	engine_srv.so + 0x1f7813
30	engine_srv.so + 0x1f48e6
31	dedicated_srv.so + 0x54f3c
32	dedicated_srv.so + 0x54fd8
33	engine_srv.so + 0x1f49cd
34	engine_srv.so + 0x245ce0
35	engine_srv.so + 0x1f57df
36	dedicated_srv.so + 0x550b0
37	dedicated_srv.so + 0x740c0
38	dedicated_srv.so + 0x740c0
39	dedicated_srv.so + 0x205b5
40	srcds_linux + 0x6f1
41	libc-2.17.so + 0x19933
42	srcds_linux + 0xc90
43	srcds_linux + 0x2f4
44	srcds_linux + 0x84c
45	ld-2.17.so + 0x14f60
46	libc-2.17.so + 0x19849
47	srcds_linux + 0x84c
48	srcds_linux + 0x86d
49	srcds_linux + 0x610
50	srcds_linux + 0x8dc
51	0xbfe64afc
52	0x5f736463
I disassembled server_srv.so:
Code:
.text:0048D1A0                                                 ; Attributes: bp-based frame
.text:0048D1A0
.text:0048D1A0                                                 ; _DWORD __cdecl CSoundPatch::ChangePitch(CSoundPatch *this, float, float)
.text:0048D1A0                                                 _ZN11CSoundPatch11ChangePitchEff proc near
.text:0048D1A0                                                                                         ; CODE XREF: CSoundControllerImp::SoundChangePitch(CSoundPatch *,float,float)+16j
.text:0048D1A0                                                                                         ; CSoundControllerImp::ProcessCommand(SoundCommand_t *)+E3p ...
.text:0048D1A0
.text:0048D1A0                                                 this            = dword ptr  8
.text:0048D1A0
.text:0048D1A0 55                                                              push    ebp
.text:0048D1A1 89 E5                                                           mov     ebp, esp
.text:0048D1A3 8B 45 08                                                        mov     eax, [ebp+this]
.text:0048D1A6 83 48 50 02                                                     or      dword ptr [eax+50h], 2
.text:0048D1AA 5D                                                              pop     ebp
.text:0048D1AB E9 B0 FC FF FF                                                  jmp     _ZN14CSoundEnvelope9SetTargetEff ; CSoundEnvelope::SetTarget(float,float)
.text:0048D1AB                                                 _ZN11CSoundPatch11ChangePitchEff endp
drop occurs due to this line:
Code:
.text:0048D1A6 83 48 50 02                                                     or      dword ptr [eax+50h], 2
Maybe know how to patch the memory location? Or maybe someone has server_srv.so early version of the game? Let's say version 2.1.4.2-2.1.4.4.

Last edited by Accelerator; 01-16-2017 at 10:03.
Accelerator is offline
cravenge
Veteran Member
Join Date: Nov 2015
Location: Chocolate Factory
Old 01-17-2017 , 03:25   Re: L4D2 Server Crash
Reply With Quote #6

Best solution would be to limit the number of players that can use chainsaws and check if the current number of players equipped with chainsaw reaches the limit. If so, kill the entity.
cravenge is offline
Vit_amin
Senior Member
Join Date: Dec 2015
Location: Russian Federation
Old 01-17-2017 , 12:29   Re: L4D2 Server Crash
Reply With Quote #7

You disassembled server_srv.so by IDA ?

Last edited by Vit_amin; 01-17-2017 at 12:30.
Vit_amin is offline
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 10-01-2018 , 11:35   Re: L4D2 Server Crash
Reply With Quote #8

Can someone understand this problem? It is still relevant (for those who have not given up chainsaws). Valve ignores this problem
__________________

Last edited by Accelerator; 10-01-2018 at 11:36.
Accelerator is offline
Lux
Veteran Member
Join Date: Jan 2015
Location: Cat
Old 10-01-2018 , 22:16   Re: L4D2 Server Crash
Reply With Quote #9

Quote:
Originally Posted by Accelerator74 View Post
The server falls after, when a lot of players have a chainsaw, and at the same time beginning to use it. The server stops responding, the var rises, falls fps and server crashes.
I know this may seem unrelated, do you use the mutation system at all, e.g. "scriptedmode.nut"
I had a similar problem while running this over a few hours OnTakeDamage would become expensive causing what you showed(server would stall var would spike alot ending in crash) but would be an event crash.

After removing any thing to do with the mutation system and DirectorOptions<- call i no longer have crashing problem due to damage or any type of perf degradation overtime

https://forums.alliedmods.net/showthread.php?p=2589396 this was a workaround

Hope it atleast helps.


Spoiler
__________________
Connect
My Plugins: KlickME
[My GitHub]

Commission me for L4D
Lux is offline
Accelerator
Senior Member
Join Date: Dec 2010
Location: Russia
Old 10-01-2018 , 23:29   Re: L4D2 Server Crash
Reply With Quote #10

No, I do not use the mutation system.

I tried to block all the sounds of the chainsaw:
Code:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
	AddNormalSoundHook(view_as<NormalSHook>(EventSound));
}

public Action EventSound(int clients[64], int& numClients, char sample[PLATFORM_MAX_PATH], int& entity, int& channel, float& volume, int& level, int& pitch, int& flags)
{
	if (StrContains(sample, "chainsaw", false) != -1)
		return Plugin_Handled;
	
	return Plugin_Continue;
}
It does not help.

As I noticed, the player need only start to cut (not necessarily harming anyone), and the server crashes, and not in all cases.
__________________

Last edited by Accelerator; 10-02-2018 at 00:09.
Accelerator is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:02.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode