[Python-Dev] new failing test -- test_compiler

Jeremy Hylton jhylton at gmail.com
Sat Aug 7 21:29:19 CEST 2004


I added a test for the compiler package, because I realized it would
easily fall out of date if the language changed (say, decorators were
added) and the compiler package wasn't updated.  I added a test with a
resource, so it would only fail if you run regrtest.py -u all.  I
think that's a little lame, but better than letting us get into beta
without getting the compiler package fixed.

At any rate, the test become somewhat more interesting than I expected
because it fails in an unexpected way:

Fatal Python error: deletion of interned string failed
Aborted (core dumped)

My best guess is that this is a stack overflow.  In particular, gdb
shows that the failure is 388 stack levels deep.  The compiler package
has very deep function calls, because it uses recursion to traverse
abstract syntax trees.  (I know, I know, we should just rewrite the
compiler to use iterator instead of recursion <wink>.)  Inside one of
those deeply nested calls, it triggers GC which attempts to free a
deeply nested tree that is now garbage.  I think that's where it blows
up.  If anyone has suggestions for debugging, I'm all ears.

Jeremy


More information about the Python-Dev mailing list