[CF-Devel] Major bug in CF server
Michael Toennies
michael.toennies at nord-com.net
Sun Jan 14 11:43:53 CST 2001
Very good Mark!
This sounds like one of the problems we have encountered.
Has you check your fix in?
Then MiDS and i will update our server and let them test by
the people.
Btw, at this time we don't have make any "public calls" for CF
but we always have 2-6 players online on the 3 metaserver servers,
sometimes up to 10. Thats sounds nice, or not?
MichToen
>
Michael Toennies wrote:
>
> The effect gets mad, if you enter the dragon hangar! Do it!
>
> The game start to be frozen!! Tray praying. You will see, that
>
every second
>
> you stay
>
> in the hangar (and you only enter, do nothing) the server goes
>
more down in
>
> periodical steps.
>
> If you leave, all is fine!
>
>
>
> Do it on the 95.7 server - nothing!! The effect is simply not in this
>
> version and not in a version
>
> <95.7 which i can remember.
>
>
Actually, the performance seems very inconsistant.
>
>
On my home system (dual p3-500, 256 mb ram), I went into the
>
dragon hangar and
>
wandered into the middle of the melee.
>
>
Perfomance/cpu time of the server actually was not that bad
>
(less than 10% of
>
the cpu time). Since the client was on the same system, the big
>
server was
>
actually the x-server (taking around 40% of the cpu time). I'm
>
not sure of
>
these percentages are overall cpu time or that by cpu (ie, system
>
has 200% cpu
>
total). These numbers are what is reported by top.
>
>
But at some point, the server started chewing up much more cpu
>
time. And this
>
started appearing in the output:
>
>
BUG: get_attack_mode(): freed object
>
>
Tracking this back, the bad object seems to go back to line 428 in
>
server/monster.c (enemy). Stepping through the debugger, even at
>
that point,
>
the enemy it is passing has been freed.
>
>
Further tracking reveals that find_enemy is returning a freed pointer.
>
>
Final tracking realizes that the friendly object list has a free
>
object on it,
>
and it is using that.
>
>
I'll put some check into get_nearest_player to check for freed
>
objects and do
>
something intelligent when it finds one on the friendly list
>
(like not use it
>
and update the friendly).
>
>
I'm not sure how it got in that state originally, and I'm not
>
sure if that is a
>
factor at all in poor performance. But I'll put a fix in for
>
that, and if it
>
helps at all. IF nothing else, it fixes a potentially serious bug.
>
_______________________________________________
>
crossfire-devel mailing list
>
crossfire-devel at lists.real-time.com
>
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
>
More information about the crossfire
mailing list