cpython icon indicating copy to clipboard operation
cpython copied to clipboard

Warn In PyThreadState_Clear() If the Thread State Still Has an Unhandled Exception

Open ericsnowcurrently opened this issue 1 year ago • 0 comments

Feature or enhancement

Proposal:

When PyThreadState_Clear() is called, the thread state could still have an exception set. As a user, it would be helpful to know when that happens. This is similar to how we already warn the user if the thread state was still running Python code (we check tstate->current_frame).

For unhandled exceptions, I'm pretty sure we'd check tstate->exc_state (or maybe tstate->exc_info), along with tstate->current_exception. We could emit a warning, as well as print the traceback (or generally invoke sys.excepthook()).

It would probably make sense to separately warn about tstate->async_exc (and print that traceback).

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Linked PRs

  • gh-121343

ericsnowcurrently avatar Jun 26 '24 18:06 ericsnowcurrently