Author |
Message |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Fri Oct 03, 2003 11:05 pm Post subject: Nasty lag bug |
 |
|
|
|
Well, I tried switching over to ASSS today (win32 version), and encountered some problems...
We had about 50 people online (big mistake) when we killed the server and brought up the ASSS server. Everyone connected, and the commands worked fine for about 3 seconds. Then everyone seemed to dissapear, as if they werent sending position packets. Commands like ?help stopped working. Then after about 15 seconds, i got every command result spammed to me, and I could see people again. Then it all started again, until finally the server committed an illegal op.
It was something about an assert failing on something like CheckIfMemoryIsHeapPointer() or something. _________________ Hyperspace Owner
Smong> so long as 99% deaths feel lame it will always be hyperspace to me |
|
Back to top |
|
 |
Grelminar Creator of Asss
Joined: Feb 26 2003 Posts: 378 Offline
|
Posted: Sun Oct 05, 2003 4:09 am Post subject: |
 |
|
|
|
Catid claims to have a fix for that failing assert. Ask him about it, because it has to do with compiling on windows.
As for the lagginess, I thought I had a guess, but it would really help if you could send me the source for any non-standard modules you were running at the time. You can email it to grelminar@yahoo.com. |
|
Back to top |
|
 |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Sun Oct 05, 2003 1:24 pm Post subject: |
 |
|
|
|
No non standard modules. Just the normal ones, and freq owners. |
|
Back to top |
|
 |
Mine GO BOOM Hunch Hunch What What

Age:42 Gender: Joined: Aug 01 2002 Posts: 3615 Location: Las Vegas Offline
|
Posted: Sun Oct 05, 2003 8:14 pm Post subject: |
 |
|
|
|
If possible, use the Debug builds, so when the server crashes, MSVS can grab control and enter full debugging mode, so you can check exactly which lines in which files are causing the crash. It does make the server run a bit slower, but if you are running atleast 500mhz, you shouldn't notice it. |
|
Back to top |
|
 |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Sun Oct 05, 2003 9:57 pm Post subject: |
 |
|
|
|
My host was running it, so...
Not like my computer could handle 30-50 players anyway. |
|
Back to top |
|
 |
Mine GO BOOM Hunch Hunch What What

Age:42 Gender: Joined: Aug 01 2002 Posts: 3615 Location: Las Vegas Offline
|
Posted: Mon Oct 06, 2003 11:17 am Post subject: |
 |
|
|
|
Have a Dr Watson log of the crash? |
|
Back to top |
|
 |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Mon Oct 06, 2003 9:19 pm Post subject: |
 |
|
|
|
Unfortunatly, no. |
|
Back to top |
|
 |
catid Guest
Offline
|
Posted: Thu Oct 09, 2003 2:17 am Post subject: topic |
 |
|
|
|
have not received any messages from you Dr Brain, so i'll just outline possible solutions here.
(1) excess reliable messages could potentially bog down the server right now, due to the way that ALL reliables from ALL players are handled by the same thread. i propose that reliables that do not need to be processed in order be processed by the thread sorting packets into reliable and unreliable, and that the reliables be handled by at least 2 worker threads per CPU, waiting on completion ports or whatnot.
(2) you can fix for yourself one of the larger bugs in ASSS code right now (i haven't sent the patch to grel yet). around line 304 of game.c will look like this:
if ((pos->status && STATUS_SAFEZONE) &&
change that to
if ((pos->status & STATUS_SAFEZONE) &&
this was causing server to send all or at least a very large percentage of position packet rebroadcasts reliably
(3) i had a similar HeapCheckException thing in my build of ASSS. as it turns out, my problem was a compiler misconfiguration. i had accidentally set the modules to build as Debug Multi-threaded, as opposed to Debug Multi-threaded DLL. the difference is that the DLL's will use the loader application's heap with malloc(), whereas the non-DLL version of the modules will use a "local" heap that won't work when you allocate memory in one module and try to free it in another, causing a crash with that exact exception
(4) ASSS could be double-freeing some data. i've found several places where this could happen (before i fixed them), but might not be YOUR bug. the best solution if none of my other advice helped up to this point is to get a stack trace from the server. you can do this by compiling in Debug mode. when it crashes, you can get a stack trace with symbols. Dr Watson would be able to grab the stack trace even if your OS isn't helpful, as WinXP is definitely not. |
|
Back to top |
|
 |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Thu Oct 09, 2003 9:25 am Post subject: |
 |
|
|
|
I will try that stuff when I get a chance, hopefully tonight. |
|
Back to top |
|
 |
|