Fatal error: GC object already tracked

Greg Chapman glc at well.com
Tue Oct 12 09:20:06 EDT 2004


On 11 Oct 2004 09:17:07 -0700, redhog at takeit.se (Egil M?ller) wrote:

>I'm developing a larger Python program, and one component (a text
>parser for a networking protocol) happend to be terribly slow, while
>quite a simple piece of code, so I decided to reimplement it in C.
>
>However, my code seems to do something in err, since the program
>semi-randomly locks somewhere outside my C-code (after returning to
>python), and semi-randomly issues a "Fatal error: GC object already
>tracked". As this is my first C-module ever, nearly straight from the
>HOWTO, I don't have much clue as to what is really wrong with my
>code...
>
>The code is available for inspection at
>http://grimoire.takeit.se/files/CReader.c, and the error happens at
>line 1111 in that file...
>

Your CReader_Buffer_dealloc method should be calling PyObject_GC_UnTrack before
doing anything else, see:

http://docs.python.org/api/supporting-cycle-detection.html

I can't say for sure that that will fix your problem, but given the error
message you're getting, it seems like a good place to start.

---
Greg Chapman




More information about the Python-list mailing list