2011-11-11 31 views
4

運行Django Nonrel,使用Google App Engine 2.6.0和Python 2.7,第一次嘗試加載本地主機和本地主機/管理時出現此異常(我期望它雖然):加載本地主機時Django Nonrel中的管道錯誤

Exception happened during processing of request from ('127.0.0.1', 57011) 
    Traceback (most recent call last): 
     File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock 
     self.process_request(request, client_address) 
     File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request 
     self.finish_request(request, client_address) 
     File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
     self.RequestHandlerClass(request, client_address, self) 
     File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 2438, in __init__ 
     BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs) 
     File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__ 
     self.finish() 
     File "/usr/lib/python2.7/SocketServer.py", line 694, in finish 
     self.wfile.flush() 
     File "/usr/lib/python2.7/socket.py", line 303, in flush 
     self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
    error: [Errno 32] Broken pipe 

奇怪的是,它只出現在谷歌瀏覽器。當使用Firefox時,它不會打印任何異常(或者至少在我嘗試多次嘗試後,我無法在Firefox中複製此問題)。

有沒有人知道關於這個問題的一些事情?

感謝

回答

5

已經有a fewsimilar的Chrome和dev_appserver.py之間的競爭條件問題reports。通常情況下,Chrome會向服務器打開多個併發連接,但首先會在第二個連接上發送請求。因爲dev_appserver是單線程的,所以第一個請求阻塞,服務器掛起,直到有人放棄。

假設啓動Chrome與--disable-preconnect可以防止這種情況。

+0

哦,差點錯過了你的答案。非常感謝你。很高興知道這是一個已知的問題。 –