summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2015-12-18 18:00:24 +0100
committerFlorian Bruhin <me@the-compiler.org>2015-12-18 18:00:24 +0100
commit82968e25f30c15565a4bf3993fe21d4f577eac8d (patch)
tree963d49ffae0059a806e2bccb2334257de5187af7
parent442cdeb1e4c616dedec8c61abaf8d4e93ca154ba (diff)
downloadcherrypy-82968e25f30c15565a4bf3993fe21d4f577eac8d.tar.gz
wsgiserver: Ignore EPROTOTYPE on OS X.
Due to what's probably an OS X kernel bug, it can return EPROTOTYPE instead of EPIPE in some situations: http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ Fixes #1392.
-rw-r--r--cherrypy/wsgiserver/wsgiserver2.py2
-rw-r--r--cherrypy/wsgiserver/wsgiserver3.py2
2 files changed, 4 insertions, 0 deletions
diff --git a/cherrypy/wsgiserver/wsgiserver2.py b/cherrypy/wsgiserver/wsgiserver2.py
index 6dee082c..04a11a63 100644
--- a/cherrypy/wsgiserver/wsgiserver2.py
+++ b/cherrypy/wsgiserver/wsgiserver2.py
@@ -196,6 +196,8 @@ socket_errors_to_ignore = plat_specific_errors(
)
socket_errors_to_ignore.append("timed out")
socket_errors_to_ignore.append("The read operation timed out")
+if sys.platform == 'darwin':
+ socket_errors_to_ignore.append(plat_specific_errors("EPROTOTYPE"))
socket_errors_nonblocking = plat_specific_errors(
'EAGAIN', 'EWOULDBLOCK', 'WSAEWOULDBLOCK')
diff --git a/cherrypy/wsgiserver/wsgiserver3.py b/cherrypy/wsgiserver/wsgiserver3.py
index 1e1dc360..4d68847a 100644
--- a/cherrypy/wsgiserver/wsgiserver3.py
+++ b/cherrypy/wsgiserver/wsgiserver3.py
@@ -170,6 +170,8 @@ socket_errors_to_ignore = plat_specific_errors(
)
socket_errors_to_ignore.append("timed out")
socket_errors_to_ignore.append("The read operation timed out")
+if sys.platform == 'darwin':
+ socket_errors_to_ignore.append(plat_specific_errors("EPROTOTYPE"))
socket_errors_nonblocking = plat_specific_errors(
'EAGAIN', 'EWOULDBLOCK', 'WSAEWOULDBLOCK')