BUG cries on Bugfarm Fortress and Sumo

For things that have to do with those crazy test servers... and yeah. By request of z-man, and, of course, you gotta obey...

Moderator: Z-Man

Post Reply
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

This one is really weird:

Code: Select all

[4] Lackadaisical: BUG!
[4] Lackadaisical: sub does weird things
SuBlImInAl.FreQ is indeed doing something unusual that should be considered cheating. I'm not describing it in public for obvious reasons. I know where to fix it on the client, where to filter the buggy commands on the server, but I don't really know what the effect of the exploit is. And I'd like to know that, because I want to fix the core of the problem first. To do that, I need to now how the cheat looks to other players.
Some experimentation on Kamikaze (the higher the ping, the bigger the effect), a server with lobster style one time booster, revealed that using the cheat, I can decelerate to 8m/s which isn't usually possible there. Did sub accelerate beyond belief on Fortress?
gnorty
Core Dumper
Posts: 187
Joined: Wed Nov 02, 2005 2:45 am

Post by gnorty »

z-man wrote:Did sub accelerate beyond belief on Fortress?
Yes, many many times. I have seen recorded speeds of over 100, and that is ridiculous.

This probably makes more sense to you than it did to me, but one time people were discussing this, and everyone had a different value for max speed - I dont mean 1-2 difference, it was figures between 90 and 130 or so.

Things like this are fun 1 or 2 times, but after a while it gets tiresome.
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

I think I found and fixed the underlying physics bug. Under the circumstances sub found out to provoke (but they also can happen randomly), the current acceleration value is applied for a much longer time than it should be, leading to a huge boost/brake. This also may explain the random massive team killings you sometimes see at the beginning.
sub's method also messes with sync messages, so no wonder the clients get a bit confused.
gnorty
Core Dumper
Posts: 187
Joined: Wed Nov 02, 2005 2:45 am

Post by gnorty »

kewl. Hope Im there first time sub finds it doesnt work any more :)
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

If you are, do us all a favor and make him not reveal how he does it. Probably best done by not asking him :) He still has an advantage on other servers and probably isn't too keen on losing it.
It won't be a total disaster if it's revealed, though. It'll probably be fun for everyone for a while (until a release with a fix is out) and the trick is not without risk, the speed boost also catches your own client by surprise.

Code: Select all

[0] madmax committed suicide.
[0] Zop committed suicide.
[0] [fe]Radian core dumped oil in ocean for 2 points.
[0] Madbob core dumped teammate Kamakazi! Boo! No points for that!
[4] madmax: ??
[0] Madbob core dumped featherfcuk for 2 points.
[0] ~*SP*~ ØMÊgÀ committed suicide.
[12] featherfcuk: sshiit
[13] Kamakazi: radian wrong side
[3] Zop: how about splitting, madmax?
[4] madmax --> Teammates: **Defense Needs Help**
[0] 2020 core dumped [fe]Radian for 2 points.
[0] Kokor Hekkus core dumped player 0 for 2 points.
[4] madmax: sorry zop
[4] madmax: lagged
[14] the Butcher: I'm gonna cut you in pieces!
[0] Madbob committed suicide.
[13] Kamakazi: rad, take the ohter side when they turn around
[0] [fe] Ossi core dumped 2020 for 2 points.
[12] featherfcuk: brb..  smokey time
[6] Madbob: crap
[6] Madbob: wd
[0] Team blue was awarded 10 points for conquering the enemy base.
[0] Winner: Team blue
...
Player list:
[0] 12: <<_____o_____>> (logged out)
[0] 2: player_o (logged out)
[0] 5: ~*sp*~_om_ga (logged out)
[0] 10: mega_rexx (logged out)
[0] 9: [fe]_ossi (logged out)
[0] 16: kokor_hekkus (logged out)
[0] 11: oil_in_ocean (logged out)
[0] 7: 2o2o (logged out)
[0] 6: madbob (logged out)
[0] 1: tbl (logged out)
[0] 14: the_butcher (logged out)
[0] 13: kamakazi (logged out)
[0] 3: zop (logged out)
[0] 15: [fe]radian (logged out)
[0] 8: ass_(___y___) (logged out)
[0] 4: madmax (logged out)
...
[7] 2020: BUG there was no hole where he exploded... or did i cover it?
Who was the guy who exploded? Radian?
subliminal
Posts: 6
Joined: Thu May 04, 2006 10:21 pm

lol

Post by subliminal »

now u can ask me about it, its a method in which u <CENSORED>, it seems to have something to do with lag prediction
subliminal
Posts: 6
Joined: Thu May 04, 2006 10:21 pm

btw

Post by subliminal »

i dont mind if its gone lol, it was fun while it lasted ;) though with one bug gone another arises :)
subliminal
Posts: 6
Joined: Thu May 04, 2006 10:21 pm

also

Post by subliminal »

zman, if u dont mind me askin for the position? bug finder-expl.....tester lol, will report if considered cheating
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: btw

Post by Z-Man »

subliminal wrote:though with one bug gone another arises :)
Have you already found one? :)

The usual position assignment is:
Heroic bug finder/tester if you actively report a bug.
Lame cheater if you don't and use the bug to your advantage.
But, har, exploiting a bug on CVS Test and make others complain about it is practically as good as reporting it, which makes you a heroic bug finder.

Or perhaps I misunderstood your last post.

Sorry for editing your post. The other servers are still susceptible to this attack, and you were revealing a little too much. Please let the developers decide when the full details get made public.
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Code: Select all

[9] ~*SP*~joda.bot: BUG did the server forgot to send me updates ?
I dind't check this, but the server still has some real world network glitches at times.

Code: Select all

[4] ~*SP*~joda.bot --> Teammates: grind the non-grinder
[0] garispyder|DpG| core dumped teammate [Hg] Rain! Boo! No points for that!
[0] garispyder|DpG| core dumped teammate [noclan] Julian! Boo! No points for that!
[0] Gnorty core dumped teammate -*SP*- Error |! Boo! No points for that!
[0] ~*SP*~joda.bot core dumped teammate [FoA]Hunter! Boo! No points for that!
[0] adc core dumped teammate garispyder|DpG|! Boo! No points for that!
[6] [FoA]Hunter: ?
[4] ~*SP*~joda.bot: what ?
[13] [Hg] Rain: ???
[7] garispyder|DpG|: what??
[4] ~*SP*~joda.bot: BUG
[7] garispyder|DpG|: ???
[3] [noclan] Julian: what happened?
[1] -*SP*- Error |: gnorty ffs
[0] adc core dumped ~*SP*~joda.bot for 2 points.
[13] [Hg] Rain: abc??
This one was interesting. Due to a real world CPU glitch (probably the server process waiting for the debug recording to be written to disk), the server was stuck for about one second, an eternity during fortress setup. Then two game code bugs struck: the first is that even for such long simulation times, the cycles get simulated individually, one after the other, for the whole timestep. The players on the outside were simulated first, when they grinded the middle man, its wall wasn't there yet. When the middle man (and the man from the other side) reached the position, a wall from the future was in their way. Walls from the future are ignored, but only after rubber is used up on them. Naturally, by the time the rubber is used up, the wall isn't from the future any more.
Both bugs are fixed. Large timesteps are broken down into smaller ones globally, and rubber ignores walls from the future as well.
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Post by Tank Program »

I like the idea of "walls from the future."

It just sounds really cool.

</offtopic>
Image
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Code: Select all

[8] 2020: BUG look closely.. i think i went through a wall just after an explosion
Whose explosion and whose wall? Server side debug recordings aren't that graphical...

Code: Select all

[0] 1
[0] 0
[0] Gareth committed suicide.
[0] Vogel committed suicide.
[0] SuBlImInAl.FreQ committed suicide.
[0] MaZuffeR committed suicide.
[0] vanhayes core dumped KiNg CreOle for 2 points.
[0] Logan core dumped G5 for 2 points.
[0] vanhayes core dumped ~*SP*~PsYkO for 2 points.
[0] G5 core dumped Logan for 2 points.
[0] vanhayes committed suicide.
[0] 2020 committed suicide.
[0] [fe]meriton committed suicide.
[0] ~*SP*~ ØMÊgÀ committed suicide.
[0] [fe] Ossi committed suicide.
[0] madmax committed suicide.
[0] fiffleelffif committed suicide.
[5] ~*SP*~ ØMÊgÀ: ahhh
[3] vanhayes: ?
[3] vanhayes: wtf
[13] MaZuffeR: wtf
[16] madmax: wow
...
[10] SuBlImInAl.FreQ: BUG
[6] [fe]meriton: BUG: Timer appeared out of sync
That was a 2.7 second CPU lag attack that didn't come from within the game. The latest corrections at least made the death messages more correct, and I doubt there is anything further that can be done. I've lowered the maximal simulation timestep to 1/20 of a second, maybe that helps you survive a bit. What did it look like on the clients? You should have seen everyone except you go straight for the 2.7 seconds, then suddenly jumping somewhere else to explode.
User avatar
2020
Outside Corner Grinder
Posts: 1322
Joined: Thu Dec 29, 2005 9:21 pm
Location: the present, finally

Post by 2020 »

z-man wrote:

Code: Select all

[8] 2020: BUG look closely.. i think i went through a wall just after an explosion
Whose explosion and whose wall? Server side debug recordings aren't that graphical...
not sure how to pinpoint it then...
i thought i just said BUG
and then you could review it...
sorry
hold the line
User avatar
2020
Outside Corner Grinder
Posts: 1322
Joined: Thu Dec 29, 2005 9:21 pm
Location: the present, finally

Post by 2020 »

z-man wrote:What did it look like on the clients? You should have seen everyone except you go straight for the 2.7 seconds, then suddenly jumping somewhere else to explode.
something like that
they did that trick where they nose against walls
i had time to wonder what was going on
and then there was multiple explosions everywhere

spectacular...
i think that's the way to end a tournament
hehehehe
hold the line
User avatar
Z-Man
God & Project Admin
Posts: 11717
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Erm, there was a bug in the emergency code that made the timer advance far more than those 2.7 seconds. Whoops. More like 20 seconds...
Another theory for the origin of the jump would be timer adjustions. When the server was running SuSE, it's clock was constantly slow at a rate of some minutes per week. Now, with Ubuntu, we have an ntpd running that keeps time in sync with some server. I don't know how often it does that and have no control over it, but if the clock is slow, syncing will make it jump forward. The way to work around that, then, would be to not use the real time clock, but some other clock in the computer that runs steadily whatever happens. I think I saw someone on another forum a while back who made adding such a clock to the PC design his personal mission, because, he said, only then his program that tells smokers how long they still have to live would work correctly. Err, anyway, so I guess such a clock doesn't exist.

For 2020 and others who may be new here, another explanation of what I get from a debug recording:
I get to run a dedicated server in the debugger, running exactly as the server did when you cried BUG. Dedicated server means I get no graphical output. I have to dig through the variable values in the debugger to find out where walls and cycles are. There is limited graphical output available for cycle movements, I dump those into files and can display them with gnuplot, a graph plotting tool. But I don't see walls ends or holes there. Sometimes, errors are obvious from those plots, but more often, they're not.

Code: Select all

[6] SuBlImInAl.FreQ: BUG phasing
In the light of the above explanation, I'm sure you understand I have to ask who, when and possibly, where? And what? Phasing means a lot of different things to different people. That is better:

Code: Select all

[15] MaZuffeR: BUG: bashusr went through my wall
[8] (): BUG someone went through a wall
bashusr died early, so I can probably do something with this recording.
Edit: but it didn't happen. Maz was center on his team, souledout, who the kill was credited for, second level wingman. () was between them. bashusr[zop] dged in the enemy team, went around maz and (), didn't try to go around souledout, tried to through the gap of the initial grind and died there. Nothing unusual, if anything, this was a clientside extrapolation bug.

Code: Select all

[4] SuBlImInAl.FreQ: BUG: Random Server Termination
If that's about the server restarts, they're required to make the debug recordings useful. If you don't like them, play elsewhere.
Post Reply