为什么dev_appserver.py(App Engine开发服务器)挂起等待请求?

时间:2011-02-04 00:28:27

标签: google-app-engine google-chrome

我最近越来越多地看到这个错误。我在Ubuntu 10.10上使用Chrome开发者频道浏览器。当我刷新网页时 - dev_appserver似乎挂起了。超时后,如果完成请求。

如果我在appserver终端窗口中键入CTRL-C,它似乎在显示此反向跟踪后“解锁”服务器:

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

奇怪的是,当我启动Firefox以查看它是否与仅Chrome相关时,问题就消失了(无论是在Firefox上还是在Chrome上)。

我将此解释为浏览器通过不完全从响应中拉出所有字节来保持先前的请求打开。由于dev_server是单线程的, 在旧的一次请求之前,它不会处理任何进一步的请求。

这里有任何其他见解吗?发生这种情况时非常烦人,因为我必须杀死并重新启动app_devserver才能继续运行。

1 个答案:

答案 0 :(得分:6)

小组中有几篇关于此的帖子。显然Chrome会发送多个请求,然后它会以某种方式结束SDK阻止其中一个请求。

我看到一些用户say使用--disable-preconnect帮助启动Chrome。