2011-02-04 58 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。

相關問題