PDA

View Full Version : Sys_Error: Com_BeginParseSession / G_ParseSpawnVars



RobsoN
3rd January 2014, 13:04
Hello, I got 2 weird errors today:


Already parsing:
0.
1. player_data_new/user_12345
2. player_data_new/user_12345
3. player_data_new/user_12345
4. player_data_new/user_12345
5. player_data_new/user_12345
6. player_data_new/user_12345
7. player_data_new/user_12345
8. player_data_new/user_12345
9. player_data_new/user_12345
10. player_data_new/user_12345
11. player_data_new/user_12345
12. player_data_new/user_12345
13. player_data_new/user_12345
14. player_data_new/user_12345
Sys_Error: Com_BeginParseSession: session overflow trying to parse player_accounts/user_12345

and



ERROR: G_ParseSpawnVars: closing brace without data

Does someone have a little idea about it? Thanks in advance.

Ni3ls
3rd January 2014, 13:25
open the file user_12345 and post it here

RobsoN
3rd January 2014, 13:35
It's a directory with player stats. But the script didn't show which file it was.

Ni3ls
3rd January 2014, 13:59
session overflow trying to parse player_accounts/user_12345 ?
It says its file user_12345

Quote from Tally
"G_ParseSpawnVars parses a brace bounded set of key value pairs out of the
level's entity strings into level.spawnVars[] (but does not actually spawn an entity). When gamestate is exceeded, or nearly exceeded, the bounded set of values embraced with curly braces gets lost, and hence the error."

And this is from q3 engine

00504 /*
00505 ====================
00506 G_ParseSpawnVars
00507
00508 Parses a brace bounded set of key / value pairs out of the
00509 level's entity strings into level.spawnVars[]
00510
00511 This does not actually spawn an entity.
00512 ====================
00513 */
00514 qboolean G_ParseSpawnVars( void ) {
00515 char keyname[MAX_TOKEN_CHARS];
00516 char com_token[MAX_TOKEN_CHARS];
00517
00518 level.numSpawnVars = 0;
00519 level.numSpawnVarChars = 0;
00520
00521 // parse the opening brace
00522 if ( !trap_GetEntityToken( com_token, sizeof( com_token ) ) ) {
00523 // end of spawn string
00524 return qfalse;
00525 }
00526 if ( com_token[0] != '{' ) {
00527 G_Error( "G_ParseSpawnVars: found %s when expecting {",com_token );
00528 }
00529
00530 // go through all the key / value pairs
00531 while ( 1 ) {
00532 // parse key
00533 if ( !trap_GetEntityToken( keyname, sizeof( keyname ) ) ) {
00534 G_Error( "G_ParseSpawnVars: EOF without closing brace" );
00535 }
00536
00537 if ( keyname[0] == '}' ) {
00538 break;
00539 }
00540
00541 // parse value
00542 if ( !trap_GetEntityToken( com_token, sizeof( com_token ) ) ) {
00543 G_Error( "G_ParseSpawnVars: EOF without closing brace" );
00544 }
00545
00546 if ( com_token[0] == '}' ) {
00547 G_Error( "G_ParseSpawnVars: closing brace without data" );
00548 }
00549 if ( level.numSpawnVars == MAX_SPAWN_VARS ) {
00550 G_Error( "G_ParseSpawnVars: MAX_SPAWN_VARS" );
00551 }
00552 level.spawnVars[ level.numSpawnVars ][0] = G_AddSpawnVarToken( keyname );
00553 level.spawnVars[ level.numSpawnVars ][1] = G_AddSpawnVarToken( com_token );
00554 level.numSpawnVars++;
00555 }
00556
00557 return qtrue;
00558 }

Tally
3rd January 2014, 15:14
Actually, the error in this case is:


Com_BeginParseSession: session overflow trying to parse [data name]

This is a variant of a server command overflow. It is caused by too many vars being set on players at the same time, and is exacerbated by the server trying to parse other client data sets at the same time.

SOLUTION:

1. Lower the number of player slots;
2. Try not to set too many vars on players when they are connecting. Move some of it to other places like onJoinedTeam();

Paho
10th February 2016, 09:19
As for Sys_Error: Couldn't reopen /root/cod2/main/iw_13.iwd
> [PLUGIN UNLOADED]?
P.S.: on this server crash falls every fortnight(two weeks).