This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Roman Skurikhin
Recipients Roman Skurikhin, asvetlov, yselivanov
Date 2020-05-12.11:33:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
In asyncio.wait_for behaviour was changed that when we use timeout=... and the timeout expires, it waits until task is canceled. However, in some cases inner task can trigger exception while it handles cancellation. Check the following code:

import asyncio

async def ignore_cancel_and_raise():
        await asyncio.sleep(20)
    except asyncio.CancelledError:
        raise Exception('Cancellation failed')

async def main():
        await asyncio.wait_for(ignore_cancel_and_raise(), timeout=1)
    except asyncio.TimeoutError:

It will print "Timeout" and log a warning that "Task exception was never retrieved".

I think that in case inner task cancelation fails with some error, asyncio.wait_for should reraise it instead of silently losing it.
Date User Action Args
2020-05-12 11:33:07Roman Skurikhinsetrecipients: + Roman Skurikhin, asvetlov, yselivanov
2020-05-12 11:33:07Roman Skurikhinsetmessageid: <>
2020-05-12 11:33:07Roman Skurikhinlinkissue40607 messages
2020-05-12 11:33:06Roman Skurikhincreate