Server runs out of tempstring memory when shuffling maplist
Hi all,
We periodically experience crashes when the tempstring buffer is exhausted. Sometimes it might happen two days in a row, and sometimes it happens weeks apart. It quite reliably crashes with the below stacktrace, but I have no way of knowing if it's simply that map votes typically consume large amounts of tempstring memory, or if it is indeed the map vote functionality that's leaking.
Is there any available functionality to enable insight into the contents of the tempstring buffer either at runtime, or at crash time? Maybe some kind of dump?
Thank you!
I'm on Matrix and Discord if chatting would help.
Host_Error: PRVM_SetTempString: ran out of tempstring memory! (refusing to grow tempstring buffer over 256MB, cursize 268434960, size 2923)
QuakeC crash report for server:
s318563: ^2LT GLOBAL54815, Map_Count (=263), GLOBAL54795
s318564: ^5IFNOT GLOBAL54795, statement 318574
s318565: STORE_F GLOBAL54815, GLOBAL4
s318566: ^3CALL1 argv (=argv())
s318567: STORE_S GLOBAL1, GLOBAL10
s318568: STORE_S GLOBAL54818, GLOBAL4
s318569: STORE_S GLOBAL30627, GLOBAL7
s318570: ^3CALL3 strcat (=strcat())
rflags : MaplistMethod_Shuffle : statement 87
rflags : GetNextMap : statement 7
id : MapVote_Init : statement 66
id : MapVote_Finished : statement 102
id : MapVote_CheckRules_2 : statement 89
id : MapVote_Tick : statement 1
id : MapVote_Think : statement 8
: CheckRules_World : statement 1
deathmatch : _StartFrame : statement 92
: StartFrame : statement 2
####################################################################
Host_Error: PRVM_SetTempString: ran out of tempstring memory! (refusing to grow tempstring buffer over 256MB, cursize 268434512, size 1994)
QuakeC crash report for server:
s318544: ^2LT GLOBAL54815, GLOBAL54817, GLOBAL54795
s318545: ^5IFNOT GLOBAL54795, statement 318555
s318546: STORE_F GLOBAL54815, GLOBAL4
s318547: ^3CALL1 argv (=argv())
s318548: STORE_S GLOBAL1, GLOBAL10
s318549: STORE_S GLOBAL54818, GLOBAL4
s318550: STORE_S GLOBAL30627, GLOBAL7
s318551: ^3CALL3 strcat (=strcat())
rflags : MaplistMethod_Shuffle : statement 68
rflags : GetNextMap : statement 7
id : MapVote_Init : statement 66
id : MapVote_Finished : statement 102
id : MapVote_CheckRules_2 : statement 89
id : MapVote_Tick : statement 1
id : MapVote_Think : statement 8
: CheckRules_World : statement 1
deathmatch : _StartFrame : statement 92
: StartFrame : statement 2
Edited by bones_was_here