New submission from Bar Harel <bzvi7...@gmail.com>:

Asyncio has an amazing mechanism showing "Task exception was never retrieved" 
or "Future exception was never retrieved" if the task threw an exception, and 
no one checked its `.result()` or `.exception()`.

It does so by setting a private variable named `__log_traceback` to False upon 
retrieval, and logging at `__del__` if the exception wasn't retrieved.

I believe it's a very important mechanism missing from concurrent.futures. It's 
very easy to implement.

I wanted to see if there's any disagreement before I implement it though. It's 
small enough to not need python-ideas yet important enough for inclusion I 
believe.

Regarding potential issues - I can only see issues with unlikely deadlocks at 
`__del__` (think of a handler taking a lock and this occurs during the handling 
of another log record). Asyncio however already took that bet, and although 
it's less planned for multi-threading, it's still a bet that was totally worth 
it.

----------
components: Library (Lib)
messages: 374114
nosy: bar.harel
priority: normal
severity: normal
status: open
title: Log exception never retrieved in concurrent.futures
type: enhancement
versions: Python 3.10

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41372>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to