[New-bugs-announce] [issue41372] Log exception never retrieved in concurrent.futures

Bar Harel report at bugs.python.org
Wed Jul 22 18:39:11 EDT 2020


New submission from Bar Harel <bzvi7919 at 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 <report at bugs.python.org>
<https://bugs.python.org/issue41372>
_______________________________________


More information about the New-bugs-announce mailing list