On Wednesday 07 Sep 2011 21:35:44 Dennis Nezic wrote:
> On Wed, 7 Sep 2011 17:50:36 +0100, Matthew Toseland wrote:
> > On Friday 02 Sep 2011 15:34:30 Dennis Nezic wrote:
> > > On Fri, 2 Sep 2011 14:40:22 +0100, Matthew Toseland wrote:
> > > > On Friday 02 Sep 2011 13:20:39 Dennis Nezic wrote:
> > > > > On Fri, 2 Sep 2011 00:23:00 -0400, Dennis Nezic wrote:
> > > > > > On Wed, 31 Aug 2011 15:02:14 -0400, Dennis Nezic wrote:
> > > > > > > On Wed, 31 Aug 2011 09:44:17 -0400, Dennis Nezic wrote:
> > > > > > > > netstat (netstat -pnat | grep java) shows 213 connections
> > > > > > > > to my fproxy at 127.0.0.1:8888, in a "CLOSE_WAIT" state.
> > > > > > > > I only noticed this after I could no longer access fproxy
> > > > > > > > -- probably because of some thread or connection limit.
> > > > > > > > I'm not exactly sure how to reproduce this -- it's not
> > > > > > > > simply a matter of opening a connection to fproxy.
> > > > > > > 
> > > > > > > False alarm. I think my freenet wget spider got out of
> > > > > > > control. Apologies.
> > > > > > 
> > > > > > Upon further consideration, I think it might actually be a
> > > > > > bug. For one thing, this never happened with earlier
> > > > > > pre-1401ish versions. For another thing, why are there so
> > > > > > many sockets open, when my wget client has long since closed
> > > > > > and exited? (it has been about half an hour now
> > > > > > -- I'll provide updates if they ever do close.) CLOSE_WAIT
> > > > > > apparently means fproxy got the FIN signal from my wget, but
> > > > > > didn't close it's end?
> > > > > > 
> > > > > > I'm still not sure exactly how this bizarre behavior (of not
> > > > > > closing sockets) starts -- because if I restart freenet, and
> > > > > > do a simple wget transaction, the socket does get properly
> > > > > > closed.
> > > > > 
> > > > > All those "HTTP socket handlers" are still open and consuming
> > > > > freenet threads. They were initiated by "wget
> > > > > localhost:8888/USK..." type calls
> > > > > -- and they probably failed because the sites were old. Normal
> > > > > browser access to control localhost:8888 does still close the
> > > > > socket properly.
> > > > 
> > > > Well what are they doing then? Still running the requests? This
> > > > is a fundamental problem with fetching stuff over HTTP from
> > > > Freenet with a low timeout - if your tool moves on to add more
> > > > requests, the old requests haven't failed, they are still going.
> > > 
> > > They will go on forever? Fproxy will never close them? (Sounds
> > > pretty easy to DDOS that?) And why didn't this happen before?
> > 
> > No, they go on until they complete. There is a limit on the total
> > number of connections handling requests, iirc the default is 100.
> 
> Well, I just checked -- all the 80 connections that were opened a week
> ago are still open and still in CLOSE_WAIT. What does "until they
> complete" mean? 

The thread on Freenet's side will continue until it fetches the data. After 
that it *should* close the socket.

> Also, if I kept my wget spider running, it could easily
> use 213 or over, like it did when I first reported the problem, and
> eventually not let me back into fproxy :s. How does that fit into the
> 100 request limit?

Fproxy stops accepting more connections after 100 are running.
> 
> (Why isn't there a time limit, or an hop-limit again?)

There is.
> 
> > > > Having said that it may eventually be possible to detect
> > > > connection closed - in 0.5 there was a hack for it.
> > > 
> > > I think tcp's CLOSE_WAIT means fproxy should have already gotten a
> > > "close" signal, no?
> > 
> > Surprisingly enough, we are not directly generating TCP packets
> > here...
> 
> Huh? I meant, (I'm guessing), didn't my wget already send a "FIN" tcp
> message to fproxy at some point, which is what put those connections
> into CLOSE-WAIT? (a la
> http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm ), or
> am I missing something?

As I said before, we are not writing TCP packets directly. We are using a 
socket API. It is therefore somewhat painful to get notified when the socket is 
closed, if we are not actually reading from it - which we won't be while 
handling a request.

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Support mailing list
Support@freenetproject.org
http://news.gmane.org/gmane.network.freenet.support
Unsubscribe at http://emu.freenetproject.org/cgi-bin/mailman/listinfo/support
Or mailto:support-requ...@freenetproject.org?subject=unsubscribe

Reply via email to