@@ -61,7 +61,34 @@ def includeme(config):
61
61
# of OpenSSL generating a SIGABRT when OpenSSL_Die() is called, and then
62
62
# Gunicorn treating that as being told to exit the process. Either way, there
63
63
# isn't anything we can do about them, so they just cause noise.
64
- ignore_exceptions = [SystemExit ],
64
+ ignore_exceptions = [
65
+ # For some reason we get periodic SystemExit exceptions, I think it is
66
+ # because of OpenSSL generating a SIGABRT when OpenSSL_Die() is called, and
67
+ # then Gunicorn treating that as being told to exit the process. Either way,
68
+ # there isn't anything we can do about them, so they just cause noise.
69
+ SystemExit ,
70
+ # Gunicorn internally raises these errors, and will catch them and handle
71
+ # them correctly... however they have to first pass through our WSGI
72
+ # middleware for Raven which is catching them and logging them. Instead we
73
+ # will ignore them.
74
+ # We have to list these as strings, and list all of them because we don't
75
+ # want to import Gunicorn in our application, and when using strings Raven
76
+ # doesn't handle inheritence.
77
+ "gunicorn.http.errors.ParseException" ,
78
+ "gunicorn.http.errors.NoMoreData" ,
79
+ "gunicorn.http.errors.InvalidRequestLine" ,
80
+ "gunicorn.http.errors.InvalidRequestMethod" ,
81
+ "gunicorn.http.errors.InvalidHTTPVersion" ,
82
+ "gunicorn.http.errors.InvalidHeader" ,
83
+ "gunicorn.http.errors.InvalidHeaderName" ,
84
+ "gunicorn.http.errors.InvalidChunkSize" ,
85
+ "gunicorn.http.errors.ChunkMissingTerminator" ,
86
+ "gunicorn.http.errors.LimitRequestLine" ,
87
+ "gunicorn.http.errors.LimitRequestHeaders" ,
88
+ "gunicorn.http.errors.InvalidProxyLine" ,
89
+ "gunicorn.http.errors.ForbiddenProxyRequest" ,
90
+ "gunicorn.http.errors.InvalidSchemeHeaders" ,
91
+ ],
65
92
)
66
93
config .registry ["raven.client" ] = client
67
94
0 commit comments