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

Reply via email to