Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2000:
[Freeciv-Dev] Re: connection problem (PR#358)
Home

[Freeciv-Dev] Re: connection problem (PR#358)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Nicolas BRUNEL <brunel@xxxxxxxxxxxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx, bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: connection problem (PR#358)
From: Vasco Alexandre Da Silva Costa <vasc@xxxxxxxxxxxxxxx>
Date: Thu, 4 May 2000 13:43:31 +0100 (WET DST)

On Wed, 3 May 2000, Nicolas BRUNEL wrote:

> 
> Here is the message
> 
> 1: Connection request from Erik with client version 1.10.1-devel
> 1: <Erik@localhost> has rejoined the game.
> 1: fatal error!, send_buffer overrun
(snip...)
> 1: last message repeated 950 times (total 1974 repeats)
> 1: Lost connection to Erik.
> 
>     It was a running game with cvs 2 may 2000 version. ( + a modified
> gotohand.c,gotohand.h, settlers.c and advmilitary.c )
> 
> Here is the list of players
> 
> List of players:
> ------------------------------------------------------------------------------
> Urho Kekkonen (AI, hard) is not being observed
> Crazy Horse (AI, hard) is not being observed
> Vercingetorix (AI, hard) is not being observed
> Tar-Ancalimë (AI, hard) is not being observed
> T. G. Masaryk (AI, hard) is not being observed
> Erik (AI, hard) is not being observed
> Genseric (Barbarian, hard)
> 
> I was playing Urho and wanted to change to Erik . And ... I never
> succeed. :-( I tried and failed to reproduce this bug.

The problem is quite simple (or so i think).  That debug message was added
some days ago to spot what was the problem which was causing clients to
exit unexpectadly.

The per client send buffer is limited in size; 10*4096 bytes if i remember
correctly.
The problem is that if lots of players are AI players they may not respond
immediatly: i.e. they don't read their packets fast enough and that
results in the send buffer getting filled up quickly. 
That "send_buffer overrun" message simply states that the buffer has been
filled up and that packet has been discarded.

Now how should we solve this problem (the send buffer gets filled and
the client doesn't reply fast enough)?

1) increase the buffer dynamically forever? (vulnerable to DoS attacks)
2) just discard those packets (it's what we are doing now)
3) close the client connection and clean up the buffer?

I'm in favour of 3.  Any objections? :)

---
Vasco Alexandre da Silva Costa @ Instituto Superior Tecnico, Lisboa




[Prev in Thread] Current Thread [Next in Thread]