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 <rep...@bugs.python.org>
<http://bugs.python.org/issue21412>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to