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 pablogsal
Recipients eric.snow, pablogsal, vstinner
Date 2022-01-07.15:18:14
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1641568695.11.0.970529706088.issue46295@roundup.psfhosted.org>
In-reply-to
Content
Reproducer:

Code for native_ext.cpp:

#define PY_SSIZE_T_CLEAN
#include <Python.h>

#include <assert.h>
#include <pthread.h>
#include <malloc.h>

#pragma GCC push_options
#pragma GCC optimize ("O0")

PyObject*
run_simple(PyObject*, PyObject*)
{
	PyGILState_STATE gstate;
	gstate = PyGILState_Ensure();
	PyGILState_Release(gstate);
    Py_RETURN_NONE;
}

static PyMethodDef methods[] = {
        {"run_simple", run_simple, METH_NOARGS, "Execute a chain of native functions"},
        {NULL, NULL, 0, NULL},
};

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef moduledef = {PyModuleDef_HEAD_INIT, "native_ext", "", -1, methods};

PyMODINIT_FUNC
PyInit_native_ext(void)
{
    return PyModule_Create(&moduledef);
}
#else
PyMODINIT_FUNC
initnative_ext(void)
{
    Py_InitModule("native_ext", methods);
}
#endif

Code for setup.py:

import os
from distutils.core import Extension
from distutils.core import setup

ROOT = os.path.realpath(os.path.dirname(__file__))

setup(
    name="native_ext",
    version="0.0",
    ext_modules=[
        Extension(
            "native_ext",
            language="c++",
            sources=[os.path.join(ROOT, "native_ext.cpp")],
        ),
    ],
    zip_safe=False,
)

Compile extension:

python setup.py build_ext --inplace 

Execute the following script:

from test.support import run_in_subinterp
run_in_subinterp("""
import sys
sys.path.append(".")
import native_ext
native_ext.run_simple()
""")

The script deadlocks
History
Date User Action Args
2022-01-07 15:18:15pablogsalsetrecipients: + pablogsal, vstinner, eric.snow
2022-01-07 15:18:15pablogsalsetmessageid: <1641568695.11.0.970529706088.issue46295@roundup.psfhosted.org>
2022-01-07 15:18:15pablogsallinkissue46295 messages
2022-01-07 15:18:14pablogsalcreate