classification
Title: wsgiref.simple_server.WSGIRequestHandler doesn't log request timeouts
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.6, Python 3.4, Python 3.5, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Jonathan Kamens, berker.peksag, pje
Priority: normal Keywords:

Created on 2015-05-26 20:28 by Jonathan Kamens, last changed 2015-05-27 00:43 by berker.peksag.

Messages (1)
msg244134 - (view) Author: Jonathan Kamens (Jonathan Kamens) Date: 2015-05-26 20:28
http.BaseHTTPRequestHandler logs request timeouts. In handle_one_request():

        except socket.timeout as e:
            #a read or a write timed out.  Discard this connection
            self.log_error("Request timed out: %r", e)
            self.close_connection = 1
            return

Unfortunately, wsgiref.simple_server.WSGIRequestHandler, which overrides BaseHTTPRequestHandler's handle() method, does _not_ catch and log request timeouts. Fixing this is a simple matter of wrapping the entire body of its handle() function in a try with this except clause:

except socket.timeout as e:
    self.log_error("Request timed out: %r", e)
    raise
History
Date User Action Args
2015-05-27 00:43:35berker.peksagsetnosy: + berker.peksag
2015-05-26 20:52:31ned.deilysetnosy: + pje

versions: + Python 3.6, - Python 3.2, Python 3.3
2015-05-26 20:28:40Jonathan Kamenscreate