[pypy-dev] spotting pypy segfault

Armin Rigo arigo at tunes.org
Mon Jun 16 11:23:55 CEST 2008


Hi Maciej,

On Tue, Jun 10, 2008 at 07:41:03AM +0200, Maciej Fijalkowski wrote:
> 1. Have pypy-c with threads (hybrid gc, faassen, threads,
> allworkingmodules for me, svn v 55678)

Just built exactly such a pypy-c, revision 55678.

> PYTHONPATH=test gdb --args pypy-c --oldstyle test/ext/orderinglist.py

Works for me (well, all 6 tests fail, but it doesn't segfault).  I had to tweak
sqlalchemy/__init__.py, though, and I strongly suspect that you had to tweak it
too but forgot to mention it.  I can only guess the problem is some
system-specific thread stack size limit.  I don't know how to see or change the
default, but translator/c/src/thread_pthread.h seems to support a
THREAD_STACK_SIZE define, so maybe you can try recompiling the C source with a
value like 8388608 and see if it helps.

I have http://svn.sqlalchemy.org/sqlalchemy/trunk revision 4840
and http://codespeak.net/svn/user/fijal/pysqlite2 revision 55678.
Here are all my local changes:

Index: lib/sqlalchemy/__init__.py
===================================================================
--- lib/sqlalchemy/__init__.py  (revision 4840)
+++ lib/sqlalchemy/__init__.py  (working copy)
@@ -34,7 +34,7 @@
 from sqlalchemy.engine import create_engine, engine_from_config
 
 __all__ = [ name for name, obj in locals().items()
-            if not (name.startswith('_') or inspect.ismodule(obj)) ]
+            if not (name.startswith('_') or name.startswith('$') or inspect.ismodule(obj)) ]
 
 __version__ = 'svn'



More information about the Pypy-dev mailing list