The server will drop off ID software's master server list when the q3 server performs a shutdown. I believe the problem happens after the below code in sv_main.c is run:
// if time is about to hit the 32nd bit, kick all clients
// and clear sv.time, rather
// than checking for negative time wraparound everywhere.
// 2giga-milliseconds = 23 days, so it won't be too often
if ( svs.time > 0x70000000 ) {
SV_Shutdown( "Restarting server due to time wrapping" );
Cbuf_AddText( va( "map %s\n", Cvar_VariableString( "mapname" ) ) );
return;
}
The odd thing is that when the server is manually killed and restarted, it will reappear in the masters list in the same position it was at previously.
Hi, you might want to check the dpmaster code to verify this. idsoft is running an instance of this code as their master server.
I don't know whether a q3 server transmits its svs.time value to the master server, but what you say suggests it does. It may not accept servers after a wraparound.
Have you also checked, whether the quake3 server keeps transmitting heartbeats after this wraparound?
What svn revision of ioquake3 was this? If it's r1762 <= version < r1898, this could be caused by the regression in r1762 (fixed in r1898) in which the rate-limiting code rejects every getstatus request after the millisecond clock wraps around?
Comment 5Zachary J. Slater
2013-01-06 04:15:18 EST
Closing this due to lack of feedback in more than a year from the submitter.
The server will drop off ID software's master server list when the q3 server performs a shutdown. I believe the problem happens after the below code in sv_main.c is run: // if time is about to hit the 32nd bit, kick all clients // and clear sv.time, rather // than checking for negative time wraparound everywhere. // 2giga-milliseconds = 23 days, so it won't be too often if ( svs.time > 0x70000000 ) { SV_Shutdown( "Restarting server due to time wrapping" ); Cbuf_AddText( va( "map %s\n", Cvar_VariableString( "mapname" ) ) ); return; } The odd thing is that when the server is manually killed and restarted, it will reappear in the masters list in the same position it was at previously.