2011-02-04 60 views
8

我最近看到这个错误越来越多。我在Ubuntu 10.10上使用Chrome开发通道浏览器。当我刷新网页 - dev_appserver似乎挂起。超时后,如果完成请求。为什么dev_appserver.py(App Engine dev服务器)等待请求?

如果我在应用服务器终端窗口中输入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,看看它是否涉及到问题消失了(在Firefox和Chrome上)。

我正在解释这是因为浏览器保持先前的请求打开不完全拉响应的所有字节。由于dev_server是单线程的,因此它将不会处理任何进一步的请求,直到旧的超时为止。

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

+0

我的猜测是,Chrome正在使用Keepalive连接 - 它读取整个响应,但它保持打开连接以加速后续请求。我不确定如何在每台服务器上禁用此功能。 – 2011-02-04 01:34:42

+0

听起来像你正在使用非发布版本的铬?当前的稳定器是否也在做同样的事情?我一直在使用chrome并为GAE开发而没有任何问题。 – Matt 2011-02-04 03:33:49

回答

6

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

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

相关问题