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 vstinner
Recipients jbeck, jcea, skrah, swalker, vstinner
Date 2014-05-13.00:02:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1399939363.36.0.689373402775.issue21412@psf.upfronthosting.co.za>
In-reply-to
Content
> 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?
History
Date User Action Args
2014-05-13 00:02:43vstinnersetrecipients: + vstinner, jcea, swalker, skrah, jbeck
2014-05-13 00:02:43vstinnersetmessageid: <1399939363.36.0.689373402775.issue21412@psf.upfronthosting.co.za>
2014-05-13 00:02:43vstinnerlinkissue21412 messages
2014-05-13 00:02:42vstinnercreate