2015-09-26 51 views
1

我正在運行一個App開發應用程序,它使用開發服務器在Go本地編寫,並使用大約100k-1MB的JSON數據以請求1/s擊中API。App Engine dev服務器 - 套接字的協議錯誤類型

不時服務器打印錯誤跟蹤,但仍繼續擔任請求:

socket.error 41 
Traceback (most recent call last): 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 1302, in communicate 
    req.respond() 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 831, in respond 
    self.server.gateway(self).respond() 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2127, in respond 
    self.write(chunk) 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 2188, in write 
    self.req.write(chunk) 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 879, in write 
    self.conn.wfile.sendall(chunk) 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 970, in sendall 
    bytes_sent = self.send(data) 
    File "/Users/foo/go_appengine/lib/cherrypy/cherrypy/wsgiserver/wsgiserver2.py", line 977, in send 
    bytes_sent = self._sock.send(data) 
error: [Errno 41] Protocol wrong type for socket 

客戶端是在一個循環做:

func call(url string, data []byte) error { 
    r, err := http.Post(url, "application/json", bytes.NewReader(data)) 
    if err != nil { 
     return err 
    } 
    defer r.Body.Close() 
    if r.StatusCode != http.StatusCreated { 
     return fmt.Errorf("unexpected status code %d", r.StatusCode) 
    } 
    return nil 
} 

Golang的App Engine SDK現在是1.9 .26和我之前有1.9.25同樣的問題。

我沒有成功地發現任何在線的東西,這將有助於我理解這個問題。

有沒有人知道這可能是由什麼造成的?

回答

2

這似乎是從wsgiserver2.py使用python套接字引發的錯誤,因爲許多其他對「錯誤41」和「協議套接字錯誤類型」的引用在python上顯示爲sockets -module-有關。

我認爲這個問題的間歇性,它可能是平臺上的問題。在這種情況下,您應該有file an issue report in the public issue tracker包含足夠的代碼來重現問題,或者附加的應用程序可以重現問題。

備案問題報告祝你好運!