Staging
v0.8.1
Revision a67bd53d3f80ac9c518b5426aa35459bd373b2b3 authored by Elvis Pranskevichus on 03 October 2018, 15:49:00 UTC, committed by Miss Islington (bot) on 03 October 2018, 15:49:00 UTC


The C implementation of asyncio.Task currently fails to perform the
cancellation cleanup correctly in the following scenario.

    async def task1():
        async def task2():
            await task3     # task3 is never cancelled

        asyncio.current_task().cancel()
        await asyncio.create_task(task2())

The actuall error is a hardcoded call to `future_cancel()` instead of
calling the `cancel()` method of a future-like object.

Thanks to Vladimir Matveev for noticing the code discrepancy and to
Yury Selivanov for coming up with a pathological scenario..
(cherry picked from commit 548ce9dedd2e90945970671d441436a6a91608ab)

Co-authored-by: Elvis Pranskevichus <elvis@magic.io>


https://bugs.python.org/issue34872
1 parent 063755c
History
File Mode Size
NEWS.d
ACKS -rw-r--r-- 26.1 KB
HISTORY -rw-r--r-- 1.3 MB
Porting -rw-r--r-- 63 bytes
README -rw-r--r-- 1.4 KB
README.AIX -rw-r--r-- 4.7 KB
README.coverity -rw-r--r-- 845 bytes
README.valgrind -rw-r--r-- 4.5 KB
SpecialBuilds.txt -rw-r--r-- 9.7 KB
coverity_model.c -rw-r--r-- 4.1 KB
gdbinit -rw-r--r-- 4.7 KB
indent.pro -rw-r--r-- 557 bytes
python-config.in -rw-r--r-- 2.0 KB
python-config.sh.in -rw-r--r-- 2.9 KB
python-wing3.wpr -rw-r--r-- 555 bytes
python-wing4.wpr -rw-r--r-- 835 bytes
python-wing5.wpr -rw-r--r-- 835 bytes
python.man -rw-r--r-- 15.8 KB
python.pc.in -rw-r--r-- 293 bytes
svnmap.txt -rw-r--r-- 4.1 MB
valgrind-python.supp -rw-r--r-- 8.2 KB
vgrindefs -rw-r--r-- 500 bytes

README

back to top