#32558: Fail tests when unhandled thread exceptions occur
---------------------------------------------+------------------------
               Reporter:  Adam Johnson       |          Owner:  nobody
                   Type:  New feature        |         Status:  new
              Component:  Testing framework  |        Version:  dev
               Severity:  Normal             |       Keywords:
           Triage Stage:  Unreviewed         |      Has patch:  0
    Needs documentation:  0                  |    Needs tests:  0
Patch needs improvement:  0                  |  Easy pickings:  0
                  UI/UX:  0                  |
---------------------------------------------+------------------------
 Pair of #32557 and its discussion.

 In Python it's possible for a thread to be started, quit with an
 exception, and this exception never get seen since the main thread doesn't
 call `join()` on the failed thread.

 Since Python 3.8 it's possible to detect such a case by installing a hook
 at `threading.excepthook`:
 https://docs.python.org/3.9/library/threading.html#threading.excepthook

 pytest recently added such a hook, alongside the unraisable exception
 hook: https://github.com/pytest-dev/pytest/pull/8055

 I think we can do similarly here, since an exception in a non-main thread
 could indicate a problem with code. This is especially pertinent in the
 async world where sync code can be run in threads through `sync_to_async`

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32558>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.b548e60a5354dd7de6b627b707d8520d%40djangoproject.com.

Reply via email to