I seem to remember seeing this in Django too, but I could be wrong
(might have been Quixote or Myghty).

That probably does not help, though. :-(

Krys

Tim Lesher wrote:
> Server: FreeBSD 6.0, Python 2.4.2, CP 2.1
> Client: WinXP SP1, Firefox 1.07
> 
> I'm seeing a consistent hang in CherryPy when a client issues a TCP reset.
> The easiest way to repro it:
> 
> On the server:
> 1. tg-admin quickstart resettest
> 2. cd resettest && python resettest-start.py
> 
> On the client:
> 1. Go to http://servermachine:8080/
> 2. After it loads, pound on the "reload page" button quickly.
> 
> After about 5 or 6 refreshes, the server gets a traceback:
> 
> 192.168.1.254 <http://192.168.1.254> - - [2005/11/04 16:41:16] "GET /
> HTTP/1.1" 200 2101
> Exception in thread Thread-3:
> Traceback (most recent call last):
> File "/usr/local/lib/python2.4/threading.py", line 442, in __bootstrap
> self.run()
> File 
> "/usr/local/lib/python2.4/site-packages/CherryPy-2.1.0-py2.4.egg/cherrypy/_cpwsgiserver.py",
> line 247, in run
> request.write(line)
> File 
> "/usr/local/lib/python2.4/site-packages/CherryPy-2.1.0-py2.4.egg/cherrypy/_cpwsgiserver.py",
> line 192, in write
> self.wfile.flush()
> File "/usr/local/lib/python2.4/socket.py", line 243, in flush
> self._sock.sendall(buffer)
> error: (54, 'Connection reset by peer')
> 
> At this point, the whole server process is hung (doesn't accept new
> connections), and won't die until I kill it. I've checked with a packet
> sniffer, and I can see that when the server is delivering page information
> after the user has reloaded the page, the browser sends a TCP RST, and
> nothing in the server's call frame is handling it. Makes for a fine denial
> of service attack...
> 
> It looks like a straightforward CherryPy bug, but before I file it there,
> can anyone try reproducing this in another environment? Note that it doesn't
> reproduce when the client and server are on the same machine--no chance for
> a TCP reset over loopback, I imagine.
> 
> Thanks much!
> --
> Tim Lesher <[EMAIL PROTECTED]>
> 

Reply via email to