From bb9ddb4ca97c92150b677dc073c9f0bf85b3a602 Mon Sep 17 00:00:00 2001 From: benoitc Date: Tue, 6 Nov 2012 05:33:29 +0100 Subject: [PATCH] Revert "Set timeout for client socket (slow client DoS)." This changes introduced an issue with websockets support (#432) and is probably related to #428 & #416 . It is safer for now to revert it. This reverts commit aa22115cfc9c2b76c818ce231089b01c690052b6. Conflicts: gunicorn/workers/async.py gunicorn/workers/sync.py --- gunicorn/workers/async.py | 5 ----- gunicorn/workers/base.py | 5 ----- gunicorn/workers/sync.py | 3 --- 3 files changed, 13 deletions(-) diff --git a/gunicorn/workers/async.py b/gunicorn/workers/async.py index ecdab864..fc6a7dd7 100644 --- a/gunicorn/workers/async.py +++ b/gunicorn/workers/async.py @@ -29,7 +29,6 @@ class AsyncWorker(base.Worker): def handle(self, client, addr): req = None try: - client.settimeout(self.cfg.timeout) parser = http.RequestParser(self.cfg, client) try: if not self.cfg.keepalive: @@ -48,12 +47,8 @@ class AsyncWorker(base.Worker): self.log.debug("Ignored premature client disconnection. %s", e) except StopIteration as e: self.log.debug("Closing connection. %s", e) - except socket.error: - raise # pass to next try-except level except Exception as e: self.handle_error(req, client, addr, e) - except socket.timeout as e: - self.handle_error(req, client, addr, e) except socket.error as e: if e.args[0] not in (errno.EPIPE, errno.ECONNRESET): self.log.exception("Socket error processing request.") diff --git a/gunicorn/workers/base.py b/gunicorn/workers/base.py index bdc069f0..136791cb 100644 --- a/gunicorn/workers/base.py +++ b/gunicorn/workers/base.py @@ -8,7 +8,6 @@ import os import signal import sys import traceback -import socket from gunicorn import util @@ -165,10 +164,6 @@ class Worker(object): error=str(exc), ) ) - elif isinstance(exc, socket.timeout): - status_int = 408 - reason = "Request Timeout" - mesg = "

The server timed out handling for the request

" else: self.log.exception("Error handling request") diff --git a/gunicorn/workers/sync.py b/gunicorn/workers/sync.py index d18af1a6..0eb837de 100644 --- a/gunicorn/workers/sync.py +++ b/gunicorn/workers/sync.py @@ -68,7 +68,6 @@ class SyncWorker(base.Worker): def handle(self, client, addr): req = None try: - client.settimeout(self.cfg.timeout) parser = http.RequestParser(self.cfg, client) req = six.next(parser) self.handle_request(req, client, addr) @@ -76,8 +75,6 @@ class SyncWorker(base.Worker): self.log.debug("Ignored premature client disconnection. %s", e) except StopIteration as e: self.log.debug("Closing connection. %s", e) - except socket.timeout as e: - self.handle_error(req, client, addr, e) except socket.error as e: if e.args[0] != errno.EPIPE: self.log.exception("Error processing request.")