Issue 24292: wsgiref.simple_server.WSGIRequestHandler doesn't log request timeouts (original) (raw)
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