census-instrumentation / opencensus-python

A stats collection and distributed tracing framework
Apache License 2.0
669 stars 250 forks source link

return in finally can swallow exceptions #1245

Open iritkatriel opened 1 month ago

iritkatriel commented 1 month ago

In https://github.com/census-instrumentation/opencensus-python/blob/2e0710bf9ef733f29607418e51f0719422155361/contrib/opencensus-ext-flask/opencensus/ext/flask/flask_middleware.py#L205 there is a return statement in a finally block, which would swallow any in-flight exception.

This means that if a BaseException (such as KeyboardInterrupt) is raised from the body, or any exception is raised from one of the except: clauses, it will not propagate on as expected.

See also https://docs.python.org/3/tutorial/errors.html#defining-clean-up-actions.