Wirehead Studios

Wirehead Modifications => Bug Reports => Topic started by: MarneGator on 2010-01-08, 19:22



Title: kicked on map change
Post by: MarneGator on 2010-01-08, 19:22
When playing on the "no ferrets" server, I noticed that I get kicked with the message "cl.snap.servertime<cl.oldFrameServerTime" when the maps cycle.  If I immediately try to join again, I get the "invalid pk3 blahblah" message but if I restart gen, I can get back on, albeit for one map whereupon the issue resumes.  Other than reinstalling, which I have yet to do, any remedies?


Title: Re: kicked on map change
Post by: Phoenix on 2010-01-09, 02:01
It's not necessarily a Gen bug, but it's related to something a Gen programmer came up with as a fix for something else.  This happens to custom Q3 executable versions where a fix for a bug dealing with servers being up for a long time has been implemented.  I'm not certain, but Fourier (no ferrets server admin) might have implemented this fix.  I've only seen this happen on my own test server before since I'm running a custom Generations executable that has this fix.

This error kick happens as a result of the Q3 client thinking that the server is cycling time backwards.  If a warmup time is set, and the map restarts while you're still connecting in to the server when the map restart is issued, it can do this.  That part will be fixed, but right now the only workaround for that is to not use warmups or to set a very long warmup time.  If a warmup is set and you arrive on the server after the warmup is done, the only thing you can do is what you did - shut down Gen, and reload it, and reconnect.


Title: Re: kicked on map change
Post by: MarneGator on 2010-01-09, 02:58
Cool, thanks.  Out of curiosity then, this sort of event can happen all across the Q3 universe because of this timing quirk?


Title: Re: kicked on map change
Post by: Phoenix on 2010-01-09, 04:38
I don't think so.  The normal Quake3.exe will just make your view point straight up and you'll hear a "FIGHT!" as soon as you spawn in.  The problem that we fixed was that if a server was running for over 24 hours it would cause some integers to get too large and trip what's called the "sign" bit, which designates a negative number.  This caused animated shaders to stall, bobbing items to jitter, and other problems.  The only thing a server admin could do is write a cron script to restart the server every day, which is kind of a pain.  I found and fixed the integer size problem and some related glitches with the help of some people on Quakesrc.org's bulletin board (now offline), Fourier being the fellow who helped.  The only remaining issue that I know about is a map_restart issued during someone's connect, which happens if there is a warmup period.  This will get fixed at some point before the stand-alone executable gets released.  Like I said, I think this is specific to Fourier's server since we both have the same source code for the uptime glitch fix and he probably implemented it into a custom Quake3.exe build for his server.



Title: Re: kicked on map change
Post by: fourier on 2010-01-10, 21:03
It's using the ioq3 binary which does have phoenix's fix in its codebase.  The server is restarted daily.


Title: Re: kicked on map change
Post by: Phoenix on 2010-01-10, 21:48
Ahh, that makes sense now.  I didn't know that made it into Ioquake3.