All,
Apologies for the long post, but I've been ripping my hair out over this
for some time...
I currently run 3 Left 4 Dead instances on a colocated server running
Debian Lenny x86_64 with all the latest updates installed. The L4D
servers all have the following installed:
MetaMod:Source 1.7.1
SourceMod 1.2.3
SourceBans 1.4.4
HLstatsX CE Ingame Plugin 1.6.0
L4DSwitchPlayers 1.3
I run them with the following command-line arguments:
-console \
-game left4dead \
-debug \
-pidfile /srv/steam/dir1/l4d/srcds.pid \
+ip <ip> +hostport 27015 \
+log on \
+logaddress_add <ip>:27500
The server.cfg looks like this:
hostname "<server name>"
rcon_password "<password>"
sv_allow_wait_command 0
sv_alltalk 0
sv_alternateticks 0
sv_cheats 0
sv_clearhinthistory 0
sv_consistency 1
sv_contact "<email>"
sv_downloadurl ""
sv_lan 0
sv_region 255
sv_log_onefile 0
sv_logbans 1
sv_logecho 0
sv_logfile 0
sv_logflush 0
sv_logsdir "logs"
sv_maxcmdrate 100
sv_unlag 1
sv_maxunlag .5
setmaster add 68.142.72.250:27011
setmaster add 72.165.61.189:27011
sv_steamgroup <group id>
sv_steamgroup_exclusive 1
The crashes started when I installed HLstatsX:CE, which requires the
SourceMod plugin, a perl daemon that connects to the servers, and the
"log on" and "logaddress_add" parameters.
Over the past week I've done the following:
Removed the HLstatsX:CE plugin - still crashed
Installed Left 4 Dead from scratch, using the above configuration (no
plugins, vanilla) - still crashed
Installed all the plugins from scratch on above vanilla L4D - still
crashed of course
Removed "log on" and logaddress_add from parameters (but kept plugin
installed and daemon running) - did not crash
So it appears as though enabling logging is what is crashing srcds_i486
in my case. The backtrace isn't always the same, I often see it crash
inside free() within glibc as well. Since I couldn't get any interesting
information out of the core files I attached gdb to a running srcds and
triggered a crash (eventually, this is not easily reproducible) and got
the following information:
(gdb) bt
#0 0xf6d4a16b in CUtlBuffer::OnGetOverflow () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#1 0xf6d4a1bd in CUtlBuffer::SeekGet () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#2 0xf6b55b7e in CRConServer::RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#3 0xf6c7c172 in NET_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#4 0xf6c429d5 in _Host_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#5 0xf6c42e98 in Host_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#6 0xf6c4f892 in CHostState::State_Run () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#7 0xf6c4fd88 in CHostState::FrameUpdate () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#8 0xf6c4fe96 in HostState_Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#9 0xf6ce33e3 in CEngine::Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#10 0xf6cdfcbd in CDedicatedServerAPI::RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#11 0xf78e9592 in ?? ()
#12 0xf6e6a9c8 in vec4_invalid () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#13 0x00000001 in ?? ()
#14 0xf6e738b8 in ?? () from /srv/steam/dir1/l4d/bin/engine_i486.so
#15 0x008e9548 in ?? ()
#16 0xf7984334 in ?? ()
#17 0x00000000 in ?? ()
(gdb) bt full
#0 0xf6d4a16b in CUtlBuffer::OnGetOverflow () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#1 0xf6d4a1bd in CUtlBuffer::SeekGet () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#2 0xf6b55b7e in CRConServer::RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#3 0xf6c7c172 in NET_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#4 0xf6c429d5 in _Host_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#5 0xf6c42e98 in Host_RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#6 0xf6c4f892 in CHostState::State_Run () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#7 0xf6c4fd88 in CHostState::FrameUpdate () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#8 0xf6c4fe96 in HostState_Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#9 0xf6ce33e3 in CEngine::Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#10 0xf6cdfcbd in CDedicatedServerAPI::RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#11 0xf78e9592 in ?? ()
No symbol table info available.
#12 0xf6e6a9c8 in vec4_invalid () from
/srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#13 0x00000001 in ?? ()
No symbol table info available.
#14 0xf6e738b8 in ?? () from /srv/steam/dir1/l4d/bin/engine_i486.so
No symbol table info available.
#15 0x008e9548 in ?? ()
No symbol table info available.
#16 0xf7984334 in ?? ()
No symbol table info available.
#17 0x00000000 in ?? ()
No symbol table info available.
(gdb) info sharedlibrary
From To Syms Read Shared Object Library
0xf7fa8410 0xf7fc1908 Yes /lib32/libm.so.6
0xf7fa1a60 0xf7fa2958 Yes /lib32/libdl.so.2
0xf7f8e170 0xf7f993f8 Yes /lib32/libpthread.so.0
0xf7e4d230 0xf7f550b8 Yes /lib32/libc.so.6
0xf7fd87f0 0xf7ff027f Yes /lib/ld-linux.so.2
No bin/tier0_i486.so
No bin/vstdlib_i486.so
No bin/dedicated_i486.so
0xf78780d0 0xf78ad468 Yes
/srv/steam/dir1/l4d/bin/soundemittersystem_i486.so
0xf7705b80 0xf780e248 Yes
/srv/steam/dir1/l4d/bin/materialsystem_i486.so
0xf71d34a0 0xf725d398 Yes
/srv/steam/dir1/l4d/bin/studiorender_i486.so
0xf6fb3180 0xf7132c18 Yes /srv/steam/dir1/l4d/bin/vphysics_i486.so
0xf6ea5be0 0xf6f0a438 Yes
/srv/steam/dir1/l4d/bin/datacache_i486.so
0xf6aee270 0xf6d71918 Yes /srv/steam/dir1/l4d/bin/engine_i486.so
No bin/libsteam_api.so
0xf6590f40 0xf65a84e8 Yes
/srv/steam/dir1/l4d/bin/shaderapiempty_i486.so
0xf4e98db0 0xf583d968 Yes
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
0xf4aec790 0xf4b04a58 Yes
/srv/steam/dir1/l4d/bin/scenefilecache_i486.so
0xf17b2210 0xf17b4bc4 Yes
/srv/steam/dir1/l4d/bin/../left4dead/addons/metamod/bin/server_i486.so
0xf176f420 0xf17a6634 Yes
/srv/steam/dir1/l4d/bin/../left4dead/addons/metamod/bin/metamod.2.l4d.so
0xf175b910 0xf175bf44 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/bin/sourcemod_mm_i486.so
0xf14f8bd0 0xf1603634 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/bin/sourcemod.2.l4d.so
0xf13a57a0 0xf13cc604 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/bin/sourcepawn.jit.x86.so
0xf1753690 0xf1758a64 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/updater.ext.so
0xf13747a0 0xf139b404 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/webternet.ext.so
0xf173f870 0xf17434b8 Yes /lib32/librt.so.1
0xf0b5f8a0 0xf0b66868 Yes /lib32/libnss_files.so.2
0xf174bb60 0xf174e628 Yes /lib32/libnss_dns.so.2
0xf0b4d130 0xf0b58b88 Yes /lib32/libresolv.so.2
0xf0b39af0 0xf0b498a4 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/topmenus.ext.so
0xf07b20a0 0xf07e7c64 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/sdktools.ext.2.l4d.so
0xf0b32300 0xf0b36954 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/bintools.ext.2.l4d.so
0xf0b20f30 0xf0b2e8e4 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/clientprefs.ext.so
0xf0691150 0xf070a284 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/dbi.sqlite.ext.so
0xeebfc1b0 0xeec79cc4 Yes
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/extensions/dbi.mysql.ext.so
0xf06738c0 0xf06813c4 Yes /usr/lib32/libz.so.1
0xf0b08c90 0xf0b120a8 Yes /usr/lib32/libgcc_s.so.1
0xed1964b0 0xed277a04 Yes
/srv/steam/dir1/l4d/bin/libsteamvalidateuseridtickets_i486.so
No bin/steamclient.so
No bin/libtier0_s.so
No bin/libvstdlib_s.so
(gdb) info frame
Stack level 0, frame at 0xffff0b00:
eip = 0xf6d4a16b in CUtlBuffer::OnGetOverflow(int); saved eip 0xf6d4a1bd
called by frame at 0xffff0b10
Arglist at 0xffff0aec, args:
Locals at 0xffff0aec, Previous frame's sp is 0xffff0b00
Saved registers:
eip at 0xffff0afc
(gdb) disassemble
Dump of assembler code for function _ZN10CUtlBuffer13OnGetOverflowEi:
0xf6d4a13c <_ZN10CUtlBuffer13OnGetOverflowEi+0>: sub $0xc,%esp
0xf6d4a13f <_ZN10CUtlBuffer13OnGetOverflowEi+3>: mov
0x10(%esp),%eax
0xf6d4a143 <_ZN10CUtlBuffer13OnGetOverflowEi+7>: mov
0x24(%eax),%ecx
0xf6d4a146 <_ZN10CUtlBuffer13OnGetOverflowEi+10>: test $0x1,%cl
0xf6d4a149 <_ZN10CUtlBuffer13OnGetOverflowEi+13>: jne
0xf6d4a164 <_ZN10CUtlBuffer13OnGetOverflowEi+40>
0xf6d4a14b <_ZN10CUtlBuffer13OnGetOverflowEi+15>: mov %eax,%edx
0xf6d4a14d <_ZN10CUtlBuffer13OnGetOverflowEi+17>: add
0x28(%eax),%edx
0xf6d4a150 <_ZN10CUtlBuffer13OnGetOverflowEi+20>: mov
0x14(%esp),%eax
0xf6d4a154 <_ZN10CUtlBuffer13OnGetOverflowEi+24>: mov %edx,(%esp)
0xf6d4a157 <_ZN10CUtlBuffer13OnGetOverflowEi+27>: mov
%eax,0x4(%esp)
0xf6d4a15b <_ZN10CUtlBuffer13OnGetOverflowEi+31>: call *%ecx
0xf6d4a15d <_ZN10CUtlBuffer13OnGetOverflowEi+33>: add $0xc,%esp
0xf6d4a160 <_ZN10CUtlBuffer13OnGetOverflowEi+36>: ret
0xf6d4a161 <_ZN10CUtlBuffer13OnGetOverflowEi+37>: lea
0x0(%esi),%esi
0xf6d4a164 <_ZN10CUtlBuffer13OnGetOverflowEi+40>: mov %eax,%edx
0xf6d4a166 <_ZN10CUtlBuffer13OnGetOverflowEi+42>: add
0x28(%eax),%edx
0xf6d4a169 <_ZN10CUtlBuffer13OnGetOverflowEi+45>: mov (%edx),%eax
0xf6d4a16b <_ZN10CUtlBuffer13OnGetOverflowEi+47>: mov
-0x1(%ecx,%eax,1),%ecx
0xf6d4a16f <_ZN10CUtlBuffer13OnGetOverflowEi+51>: jmp
0xf6d4a150 <_ZN10CUtlBuffer13OnGetOverflowEi+20>
End of assembler dump.
Additionally, there are various errors that show up when you enable the
MALLOC_CHECK_=1 environment variable, such as the following:
ConVarRef room_type doesn't point to an existing ConVar
Executing dedicated server config file
[Thread 0xf04a8b90 (LWP 8503) exited]
Commentary: Loading commentary data from
maps/l4d_hospital01_apartment_commentary.txt.
*** glibc detected *** /srv/steam/dir1/l4d/srcds_i486: realloc():
invalid pointer: 0x0aa515b8 ***
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf7e396b0 (LWP 8495)]
0xf53acca9 in HidingSpot::HidingSpot () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
(gdb) bt
#0 0xf53acca9 in HidingSpot::HidingSpot () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#1 0xf53acd1c in CNavMesh::CreateHidingSpot () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#2 0xf538c91b in CNavArea::Load () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#3 0xf5501c35 in TerrorNavArea::Load () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#4 0xf538fe2e in CNavMesh::Load () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#5 0xf54ffefd in TerrorNavMesh::Load () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#6 0xf507f55d in CServerGameDLL::ServerActivate () from
/srv/steam/dir1/l4d/left4dead/bin/server_i486.so
#7 0xf14e48d2 in __SourceHook_FHCls_IServerGameDLLServerActivate0::Func
() from
/srv/steam/dir1/l4d/left4dead/addons/sourcemod/bin/sourcemod.2.l4d.so
#8 0xf6b7ef58 in CServerPlugin::ServerActivate () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#9 0xf6b60805 in SV_ActivateServer () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#10 0xf6c40be1 in Host_NewGame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#11 0xf6c52c38 in CHostState::State_NewGame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#12 0xf6c52e4b in CHostState::FrameUpdate () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#13 0xf6c52e96 in HostState_Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#14 0xf6ce63e3 in CEngine::Frame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#15 0xf6ce2cbd in CDedicatedServerAPI::RunFrame () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#16 0xf78ec592 in RunServerIteration () from bin/dedicated_i486.so
#17 0xf78ec62c in RunServer () from bin/dedicated_i486.so
#18 0xf78ebb84 in CDedicatedExports::RunServer () from bin/dedicated_i486.so
#19 0xf6ce37d8 in CModAppSystemGroup::Main () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#20 0xf6d599fc in CAppSystemGroup::Run () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#21 0xf6ce3b47 in CDedicatedServerAPI::ModInit () from
/srv/steam/dir1/l4d/bin/engine_i486.so
#22 0xf78ec520 in CDedicatedAppSystemGroup::Main () from
bin/dedicated_i486.so
#23 0xf794999c in CAppSystemGroup::Run () from bin/dedicated_i486.so
#24 0xf794737e in CSteamApplication::Main () from bin/dedicated_i486.so
#25 0xf794999c in CAppSystemGroup::Run () from bin/dedicated_i486.so
#26 0xf78edcc6 in main () from bin/dedicated_i486.so
#27 0xf78e6a08 in DedicatedMain () from bin/dedicated_i486.so
#28 0x0804911d in main ()
This was gathered using the following:
LD_LIBRARY_PATH=.:bin gdb --args ./srcds_i486 -console -game left4dead
-debug -pidfile /srv/steam/dir1/l4d/srcds.pid +ip <ip> +hostport 27015
+log on +logaddress_add <ip>:27500 -fork +map l4d_hospital01_apartment
set env MALLOC_CHECK=1
run
Many thanks,
Chris
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux