jesseryoung / drinkinggame

4 stars 4 forks source link

Crash Cause #21

Closed jesseryoung closed 5 years ago

jesseryoung commented 7 years ago

After deploying the latest changes the server still crashes periodically during KOTH map caputures. After the crash I checked the event log on the server and found the following

Faulting application name: srcds.exe, version: 0.0.0.0, time stamp: 0x58536aef
Faulting module name: dbi.sqlite.ext.dll, version: 1.8.0.5970, time stamp: 0x58955e9b
Exception code: 0x40000015
Fault offset: 0x0006e5ef
Faulting process id: 0x67ac
Faulting application start time: 0x01d280eb9e1c98a9
Faulting application path: D:\GameServers\TF2_FS\srcds.exe
Faulting module path: D:\GameServers\TF2_FS\tf\addons\sourcemod\extensions\dbi.sqlite.ext.dll
Report Id: cfde2f92-ece4-11e6-983b-0025907a8cc8 

Rather than trying to debug it I think it would be fine to pull the stats part completely and move the weapon multipliers to a flat file.

braids commented 7 years ago

I went and filed a pull request that removes anything that touches a DB. That would be DG stats, DG taunts, and the weapon drink modifiers. Do you have a list of the weapon drink modifiers? I can get that in a separate pull request.

braids commented 7 years ago

I recently started messing around with SQLite and thought it would be a great alternative to using MySQL for the weapon/taunt/stats DB, since the DB would be a local server file instead of a connection to an external DB that could fail. Well, to my surprise, it seems that the error in this issue involves the SQLite module of Sourcemod! This would explain why my PR's code changes didn't fix the crash when I was testing the changes out, the existing DB code in the DG plugin doesn't use the SQLite module (therefore removing it would have no effect). I'll try removing the SQLite module from my local server's Sourcemod and let you know how it goes later.

Steam Community thread about this happening to someone else from back in 2014, same exception code: https://steamcommunity.com/app/17520/discussions/1/558749824641458502/

braids commented 7 years ago

Ok, I got the KOTH cap crash to happen again, but I'm getting a different error in my debug log. This time, it looks like it's a problem with Metamod, specifically the line:

#1 0xee953b1a in KeyValues::WriteAsBinary(CUtlBuffer&) () from /hlserver/tf2/tf/addons/metamod/bin/metamod.2.tf2.so

Full log is below:

CRASH: Wed Feb 22 17:49:10 PST 2017 Start Line: ./srcds_linux -debug -port 27016 -autoupdate -steam_dir /hlserver/ -steamcmd_script /hlserver/tf2_ds.txt -console -game $ [New LWP 5039] [New LWP 5040] [New LWP 5041] [New LWP 5042] [New LWP 5043] [New LWP 5044] [New LWP 5045] [New LWP 5046] To enable execution of this file add add-auto-load-safe-path /lib/i386-linux-gnu/libthread_db-1.0.so line to your configuration file "/home/mike/.gdbinit". To completely disable this security protection add set auto-load safe-path / line to your configuration file "/home/mike/.gdbinit". For more information about this security protection see the "Auto-loading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Auto-loading safe path" Core was generated by `./srcds_linux -game tf +sv_pure 1 +map koth_nucleus.bsp +maxplayers 24 -port 27'. Program terminated with signal SIGSEGV, Segmentation fault.

0 0x0a95ca48 in ?? ()

0 0x0a95ca48 in ?? ()

1 0xee953b1a in KeyValues::WriteAsBinary(CUtlBuffer&) () from /hlserver/tf2/tf/addons/metamod/bin/metamod.2.tf2.so

2 0x00000000 in ?? ()

No symbol table info available. eax 0xf760b470 -144657296 ecx 0x0 0 edx 0xf6e74808 -152614904 ebx 0x0 0 esp 0xff82c1dc 0xff82c1dc ebp 0xff82c248 0xff82c248 esi 0xa95ca00 177588736 edi 0xf6f19920 -151938784 eip 0xa95ca48 0xa95ca48 eflags 0x210206 [ PF IF RF ID ] cs 0x23 35 ss 0x2b 43 ds 0x2b 43 es 0x2b 43 fs 0x0 0 gs 0x63 99 From To Syms Read Shared Object Library 0xf76ed61c 0xf771b727 Yes () /lib/i386-linux-gnu/libm.so.6 0xf76feacc 0xf76ff968 Yes () /lib/i386-linux-gnu/libdl.so.2 0xf7670914 0xf76b6c78 Yes bin/libstdc++.so.6 0xf7612840 0xf761f4a7 Yes () /lib/i386-linux-gnu/libpthread.so.0 0xf74783f4 0xf75a9b42 Yes () /lib/i386-linux-gnu/libc.so.6 0xf7745848 0xf775d794 Yes () /lib/ld-linux.so.2 0xf7450e00 0xf74600fc Yes bin/libgcc_s.so.1 0xf742b5f4 0xf743f770 Yes () bin/libtier0_srv.so 0xf741b9dc 0xf741f0f6 Yes () /lib/i386-linux-gnu/librt.so.1 0xf731f028 0xf7351d1c Yes () bin/libvstdlib_srv.so 0xf6cf67e0 0xf6e6f000 Yes () bin/dedicated_srv.so 0xf7726830 0xf7734df0 Yes () bin/libsteam_api.so 0xf6b79840 0xf6b85674 Yes () /lib32/libtinfo.so.5 0xf6057034 0xf62296d4 Yes () /hlserver/tf2/bin/engine_srv.so 0xf5a8417c 0xf5aab6a0 Yes () /hlserver/tf2/bin/soundemittersystem_srv.so 0xf5923214 0xf5a0c088 Yes () /hlserver/tf2/bin/materialsystem_srv.so 0xf44a6d70 0xf45534d8 Yes () /hlserver/tf2/bin/studiorender_srv.so 0xf430a8a0 0xf442c710 Yes () /hlserver/tf2/bin/vphysics_srv.so 0xf426fbf0 0xf42bf028 Yes () /hlserver/tf2/bin/datacache_srv.so 0xf42442f8 0xf42594b4 Yes () /hlserver/tf2/bin/shaderapiempty_srv.so 0xf23e0670 0xf2fb2d98 Yes () /hlserver/tf2/tf/bin/server_srv.so 0xf206331c 0xf207b480 Yes () /hlserver/tf2/bin/scenefilecache_srv.so 0xee9929bc 0xeea21f14 Yes () /hlserver/tf2/bin/replay_srv.so 0xee968000 0xee969cdc Yes () /hlserver/tf2/tf/addons/metamod/bin/server.so 0xee938770 0xee95e378 Yes () /hlserver/tf2/tf/addons/metamod/bin/metamod.2.tf2.so 0xecc09ac0 0xed8011f0 Yes () /home/mike/.local/share/Steam/linux32/steamclient.so 0xee8f09d0 0xee915c70 Yes () /home/mike/.local/share/Steam/linux32/crashhandler.so 0xeccbcaec 0xeccc36d7 Yes () /lib/i386-linux-gnu/libnss_files.so.2 No e descriptor (*): Shared library is missing debugging information. End of Source crash report