From 448bb0a94ddc58d9d749902ef4d4e2254739ccf1 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Mon, 1 Feb 2016 09:57:27 -0500 Subject: [PATCH] use EnvironmentError instead of socket.error --- gunicorn/workers/async.py | 12 ++++++------ gunicorn/workers/gthread.py | 18 +++++++++--------- gunicorn/workers/sync.py | 18 +++++++++--------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/gunicorn/workers/async.py b/gunicorn/workers/async.py index d823d5d7..4acbf3f9 100644 --- a/gunicorn/workers/async.py +++ b/gunicorn/workers/async.py @@ -58,7 +58,7 @@ class AsyncWorker(base.Worker): exc_info = sys.exc_info() # pass to next try-except level six.reraise(exc_info[0], exc_info[1], exc_info[2]) - except socket.error: + except EnvironmentError: exc_info = sys.exc_info() # pass to next try-except level six.reraise(exc_info[0], exc_info[1], exc_info[2]) @@ -71,11 +71,11 @@ class AsyncWorker(base.Worker): else: self.log.debug("Error processing SSL request.") self.handle_error(req, client, addr, e) - except socket.error as e: - if e.args[0] not in (errno.EPIPE, errno.ECONNRESET): + except EnvironmentError as e: + if e.errno not in (errno.EPIPE, errno.ECONNRESET): self.log.exception("Socket error processing request.") else: - if e.args[0] == errno.ECONNRESET: + if e.errno == errno.ECONNRESET: self.log.debug("Ignoring connection reset") else: self.log.debug("Ignoring EPIPE") @@ -121,7 +121,7 @@ class AsyncWorker(base.Worker): raise StopIteration() except StopIteration: raise - except socket.error: + except EnvironmentError: # If the original exception was a socket.error we delegate # handling it to the caller (where handle() might ignore it) six.reraise(*sys.exc_info()) @@ -133,7 +133,7 @@ class AsyncWorker(base.Worker): try: sock.shutdown(socket.SHUT_RDWR) sock.close() - except socket.error: + except EnvironmentError: pass raise StopIteration() raise diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index 846af5bd..25a7e57b 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -135,8 +135,8 @@ class ThreadWorker(base.Worker): self.nr_conns += 1 # enqueue the job self.enqueue_req(conn) - except socket.error as e: - if e.args[0] not in (errno.EAGAIN, + except EnvironmentError as e: + if e.errno not in (errno.EAGAIN, errno.ECONNABORTED, errno.EWOULDBLOCK): raise @@ -176,8 +176,8 @@ class ThreadWorker(base.Worker): with self._lock: try: self.poller.unregister(conn.sock) - except socket.error as e: - if e.args[0] != errno.EBADF: + except EnvironmentError as e: + if e.errno != errno.EBADF: raise # close the socket @@ -287,11 +287,11 @@ class ThreadWorker(base.Worker): self.log.debug("Error processing SSL request.") self.handle_error(req, conn.sock, conn.addr, e) - except socket.error as e: - if e.args[0] not in (errno.EPIPE, errno.ECONNRESET): + except EnvironmentError as e: + if e.errno not in (errno.EPIPE, errno.ECONNRESET): self.log.exception("Socket error processing request.") else: - if e.args[0] == errno.ECONNRESET: + if e.errno == errno.ECONNRESET: self.log.debug("Ignoring connection reset") else: self.log.debug("Ignoring connection epipe") @@ -338,7 +338,7 @@ class ThreadWorker(base.Worker): if resp.should_close(): self.log.debug("Closing connection.") return False - except socket.error: + except EnvironmentError: exc_info = sys.exc_info() # pass to next try-except level six.reraise(exc_info[0], exc_info[1], exc_info[2]) @@ -350,7 +350,7 @@ class ThreadWorker(base.Worker): try: conn.sock.shutdown(socket.SHUT_RDWR) conn.sock.close() - except socket.error: + except EnvironmentError: pass raise StopIteration() raise diff --git a/gunicorn/workers/sync.py b/gunicorn/workers/sync.py index 84886b95..c59c2e96 100644 --- a/gunicorn/workers/sync.py +++ b/gunicorn/workers/sync.py @@ -69,8 +69,8 @@ class SyncWorker(base.Worker): # process. continue - except socket.error as e: - if e.args[0] not in (errno.EAGAIN, errno.ECONNABORTED, + except EnvironmentError as e: + if e.errno not in (errno.EAGAIN, errno.ECONNABORTED, errno.EWOULDBLOCK): raise @@ -95,8 +95,8 @@ class SyncWorker(base.Worker): for listener in ready: try: self.accept(listener) - except socket.error as e: - if e.args[0] not in (errno.EAGAIN, errno.ECONNABORTED, + except EnvironmentError as e: + if e.errno not in (errno.EAGAIN, errno.ECONNABORTED, errno.EWOULDBLOCK): raise @@ -139,11 +139,11 @@ class SyncWorker(base.Worker): else: self.log.debug("Error processing SSL request.") self.handle_error(req, client, addr, e) - except socket.error as e: - if e.args[0] not in (errno.EPIPE, errno.ECONNRESET): + except EnvironmentError as e: + if e.errno not in (errno.EPIPE, errno.ECONNRESET): self.log.exception("Socket error processing request.") else: - if e.args[0] == errno.ECONNRESET: + if e.errno == errno.ECONNRESET: self.log.debug("Ignoring connection reset") else: self.log.debug("Ignoring EPIPE") @@ -181,7 +181,7 @@ class SyncWorker(base.Worker): finally: if hasattr(respiter, "close"): respiter.close() - except socket.error: + except EnvironmentError: exc_info = sys.exc_info() # pass to next try-except level six.reraise(exc_info[0], exc_info[1], exc_info[2]) @@ -193,7 +193,7 @@ class SyncWorker(base.Worker): try: client.shutdown(socket.SHUT_RDWR) client.close() - except socket.error: + except EnvironmentError: pass raise StopIteration() raise