[conquest] client lockup

Jon Trulson jon at radscan.com
Sat Dec 17 23:05:00 MST 2005


On Sat, 17 Dec 2005, Bill Patterson wrote:

> I have a problem where the client freezes, then after
> you kill the client and return to the game, the game

   Playing locally or remotely?  Your server or someone else's?

> says you are already flying another ship. The only way
> to fix it is to use Conqoper and "k"ill the player.

 	Ah.. I tried playing your sever last night w/o much luck, so
that was probably me you had to kill off.

 	First I tried default UDP.  I connected, UDP was negotiated
successfully.  I entered the game, and wound up just sitting on
Murisak.  All TCP proto was working but no UDP (ship movement/status
updates).

 	I ^\ to exit (and in theory go vacant).  But for some reason your 
server never got the CPCMD_DISCONNECT packet.  When I reconnected, I could 
not get back in because I was 'live'.

 	I then tried TCP only (-u option).  This time I could enter
and fly around.  For awhile.  Then the server stopped sending updates
(no packets whatsoever).  You server seemed to ignore all packets I
sent to it (raise shields, etc).  I ^\ again.  Again I could not
reconnect due to being 'live'.

 	I have not seen this problem with a server before - I wonder if 
there is some firewall trouble?  I came in as orbit (UDP) and orbit2 (TCP 
only).  Did anyone else try this server and see this problem?

         Anybody ever seen that on my server(s)?

> This sux because it locks out the player until I get
> online to fix them. Shouldn't the server detect that
> the player is gone and kill the ship or something?
>

         Yes this does suck (especially since it was me :), but it's
not a problem I've seen before.  Yes, the server should detect this,
and always has in the past.

         When the client exits, a CPCMD_DISCONNECT packet is sent,
which causes the ship to go vacant (if allowed).

        In addition, even if that packet got lost (it's a TCP so it
should never get lost) or was never sent (the client crashed), the
server will still set you vacant on a socket read error - which it should
have received because I was no longer connected.

         So in short, what was happening, should not have.  It seemed
like your firewall just 'froze' the connection(s).  UDP immediately on
entering, and TCP (about 10-15 minutes later).  So your server seems
to stop receiving packets from the client, stop sending them to the
client, and not detect when the client is no longer connected.  Very
strange.

         I'm game to try to help figure this out, but it should not be
happening in the first place :)


-- 
Jon Trulson    mailto:jon at radscan.com
ID: 1A9A2B09, FP: C23F328A721264E7 B6188192EC733962
PGP keys at http://radscan.com/~jon/PGPKeys.txt
#include <std/disclaimer.h>
"I am Nomad." -Nomad




More information about the Conquest mailing list