[New-bugs-announce] [issue40415] _asyncio extensions crashes if initialized multiple times in same process
Gregory Szorc
report at bugs.python.org
Mon Apr 27 22:27:25 EDT 2020
New submission from Gregory Szorc <gregory.szorc at gmail.com>:
Most of CPython's extensions can be initialized and freed multiple times in the same process. However, _asyncio crashes on at least CPython 3.8.2 when this is done.
STR:
1. Create a new Python interpreter
2. Have it import _asyncio
3. Finalize that interpreter.
4. Create a new Python interpreter
5. Have it import _asyncio
There are probably STR in pure Python by forcing _imp.create_dynamic() to run multiple times after the module is unloaded.
The crash occurs due to unchecked NULL access in `Py_INCREF(all_tasks);` in `PyInit__asyncio()`.
I think the underlying problem is module_init() is short-circuiting because `module_initialized` is set. And `module_initialized` is set on subsequent module loads because `module_free()` isn't clearing it.
----------
components: asyncio
messages: 367483
nosy: asvetlov, indygreg, yselivanov
priority: normal
severity: normal
status: open
title: _asyncio extensions crashes if initialized multiple times in same process
versions: Python 3.8, Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40415>
_______________________________________
More information about the New-bugs-announce
mailing list