[Python-Dev] Core dump in garbage collection: _PyGC_Insert???

Barry A. Warsaw bwarsaw@beopen.com
Tue, 11 Jul 2000 00:56:54 -0400 (EDT)


>>>>> "JH" == Jeremy Hylton <jeremy@beopen.com> writes:

>>>>> "NS" == Neil Schemenauer <nascheme@enme.ucalgary.ca> writes:

    NS> Its hard to say.  The GC code will probably pick up on a lot
    NS> of problems because it touches many objects.  On the other
    NS> hand, it could be my bug.

It also appears to mask many problems.  I just compiled out the
gcmodule (which is sadly undocumented, I believe) and I've just gotten
a number of new memory leaks.  This is basically running a very simple
Python script:

-------------------- snip snip --------------------
'-'.join(('one',))
'-'.join((u'one',))
-------------------- snip snip --------------------

Will investigate further, but at first blush, they might be real
cycles created in the exception initialization code.

But anyway...

    JH> Which leads me to ask, Barry, did you run purify on an
    JH> interpreter with the latest stringobject.c?

...I'd actually expect the above script to leak *seq twice in the
current CVS string_join().  It doesn't, but then neither does
including the missing decrefs cause the objects to be decref'd extra
times.  Interesting.  Still I think string_join() needs to be patched
in two places to decref *seq (first, in the seqlen==1 clause, and
later just before the return PyUnicode_Join()).

I'll check in a patch, but would appreciate a proofread.

-Barry