I was testing how exceptions in my Flask app would get logged to Sentry and noticed that the same exception always gets logged twice, with sightly differing stack trace. Why does this happen and how should I prevent it?
For the first entry, I get the following stack trace:
File "raven/middleware.py", line 35, in __call__
iterable = self.application(environ, start_response)
File "flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "app/api_1_0/security/decorators.py", line 52, in decorated
self._process(permission)
File "app/api_1_0/security/decorators.py", line 27, in _process
raise FooException('foo exception in _process')
For the second entry, the stack trace is as follows:
File "flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "app/api_1_0/security/decorators.py", line 52, in decorated
self._process(permission)
File "app/api_1_0/security/decorators.py", line 27, in _process
raise FooException('foo exception in _process')
set flask debug to False
e.g.
app.run(debug=True)
to
app.run(debug=False)
related issue on github: https://github.com/getsentry/raven-python/issues/412