I've been seeing this error more and more lately. I'm using the Chrome dev-channel browser on Ubuntu 10.10. When I refresh a web page - the dev_appserver seems to hang. After a timeout, if completes the request.
If I type CTRL-C in the appserver terminal window, it seems to "unstick" the server after displaying this back trace:
Exception happened during processing of request from ('192.168.1.19', 48238)
Traceback (most recent call last):
File "/usr/local/lib/python2.5/SocketServer.py", line 222, in handle_request
self.process_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 241, in process_request
self.finish_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 3123, in __init__
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/local/lib/python2.5/SocketServer.py", line 522, in __init__
self.handle()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 316, in handle
self.handle_one_request()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 299, in handle_one_request
self.raw_requestline = self.rfile.readline()
File "/usr/local/lib/python2.5/socket.py", line 346, in readline
data = self._sock.recv(self._rbufsize)
KeyboardInterrupt
Oddly, when I brought up Firefox to see if it's related to Chrome-only, the problem went away (both on Firefox AND on Chrome).
I'm interpreting this as the browser keeping the previous request open by not completely pulling all the bytes from the response. Since the dev_server is single-threaded, it will not process any further requests until the old one times out.
Anyone have any other insight here? It's extremely annoying when this happens, as I have to kill and restart the app_devserver to keep going.
There are several posts about this in the groups. Apparently Chrome will sends multiple requests, then it somehow winds up that the SDK blocks on one of the requests.
I've seen a few users say starting Chrome with --disable-preconnect helps.