[issue21412] core dump in PyThreadState_Get when built --with-pymalloc
STINNER Victor
report at bugs.python.org
Tue May 13 02:02:43 CEST 2014
STINNER Victor added the comment:
> Victor: sure; see attached.
Ok, so the error occurs when Python tries to import the _heapq dynamic module: PyModule_Create2() calls PyThreadState_Get() to retrieve to current thread, but it fails. There is a current thread because PyModule_Create2() is called indirectly by PyEval_EvalFrameExReal() (and I don't see where the GIL would be released in the call stack).
It looks like a bug in PyThreadState_Get(). This function relies on _Py_atomic_load_relaxed() which is defined in Include/pyatomic.h. This file has an implementation of atomic functions for Intel processors and contains an interesting comment:
...
#else /* !gcc x86 */
/* Fall back to other compilers and processors by assuming that simple
volatile accesses are atomic. This is false, so people should port
this. */
...
It looks like John tries Python on SPARC which may explain the issue.
This is just a theory. It also looks like we had SPARC buildbots running on Solaris with system C compiler ("/opt/solarisstudio12.3/bin/cc") and it was able to run tests.
I don't understand the link with pymalloc.
@John: Did you try to build Python 3.3? Did it work?
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21412>
_______________________________________
More information about the Python-bugs-list
mailing list