<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div>Ah, so it seems that, as I leave the server running longer &amp; longer,</div>
<div>more &amp; more threads are taken up with a `.recv()` call. I think one of</div>
<div>my clients opens requests and does not read them/close them. Eventually</div><div>all the threads are blocking in that fashion. </div><div><br></div><div>I will fix my clients. But, is there a server-side fix to this (again, using Repoze.BFG)?</div>

<div>Something to time out the connection after 60 seconds or so if nothing has happened?</div></div></blockquote><div><br></div><div>Additional info: in particular the blocked threads&#39; stack dumps look like this:</div>
<div><br></div><div><div>Thread 140605868680960:</div><div>  File &quot;/usr/lib/python2.6/threading.py&quot;, line 504, in __bootstrap</div><div>    self.__bootstrap_inner()</div><div>  File &quot;/usr/lib/python2.6/threading.py&quot;, line 532, in __bootstrap_inner</div>
<div>    self.run()</div><div>  File &quot;/usr/lib/python2.6/threading.py&quot;, line 484, in run</div><div>    self.__target(*self.__args, **self.__kwargs)</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 878, in worker_thread_callback</div>
<div>    runnable()</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 1052, in &lt;lambda&gt;</div><div>    lambda: self.process_request_in_thread(request, client_address))</div>
<div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 1068, in process_request_in_thread</div><div>    self.finish_request(request, client_address)</div><div>  File &quot;/usr/lib/python2.6/SocketServer.py&quot;, line 322, in finish_request</div>
<div>    self.RequestHandlerClass(request, client_address, self)</div><div>  File &quot;/usr/lib/python2.6/SocketServer.py&quot;, line 617, in __init__</div><div>    self.handle()</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 442, in handle</div>
<div>    BaseHTTPRequestHandler.handle(self)</div><div>  File &quot;/usr/lib/python2.6/BaseHTTPServer.py&quot;, line 329, in handle</div><div>    self.handle_one_request()</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 437, in handle_one_request</div>
<div>    self.wsgi_execute()</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 287, in wsgi_execute</div><div>    self.wsgi_start_response)</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/connector.py&quot;, line 21, in __call__</div>
<div>    result = self.next_app(environ, start_response)</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/cachecleanup.py&quot;, line 25, in __call__</div><div>    return self.next_app(environ, start_response)</div>
<div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/repoze/retry/__init__.py&quot;, line 65, in __call__</div><div>    chunk = original_wsgi_input.read(rest)</div><div>  File &quot;/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py&quot;, line 474, in read</div>
<div>    data = self.file.read(length)</div><div>  File &quot;/usr/lib/python2.6/socket.py&quot;, line 377, in read</div><div>    data = self._sock.recv(left)</div></div><div><br></div><div>Was my assessment of the situation accurate?</div>
</div>