[Stackless] Advice on Tracking down GC Assertion Failure

Andrew Francis andrewfr_ice at yahoo.com
Mon Nov 29 19:50:22 CET 2010


Message: 5
Date: Mon, 29 Nov 2010 13:34:16 +0800
From: Kristj?n Valur J?nsson <kristjan at ccpgames.com>
To: The Stackless Python Mailing List <stackless at stackless.com>
Subject: Re: [Stackless] Advice on Tracking down GC Assertion Failure
Message-ID:
    <2E034B571A5CE44E949B9FCC3B6D24EE57873198 at exchcn.ccp.ad.local>
Content-Type: text/plain; charset="iso-8859-1"

>Hi, What this means is that the reference count of the target object is >too low.  One of your objects holds a reference to it without having >INCRefed it, and also visits it during the gc_visit callback.
>That is the most likely explanation.  The other is that it is just a >general reference mistake that accidentally shows up during GC.
>Catch the target object and figure out what object it is, also take a look >at from where it is being referenced.  This ought to give you an idea >about it.  Use the debugger to examine "op" when the assertion fails.

Thanks for the advice!

Cheers,
Andrew



-----Original Message-----
From: stackless-bounces at stackless.com [mailto:stackless-bounces at stackless.com] On Behalf Of Andrew Francis
Sent: Monday, November 29, 2010 5:17
To: stackless at stackless.com
Subject: [Stackless] Advice on Tracking down GC Assertion Failure

Hi Guys:

I know that this is with my experimental version of Stackless Python with select() so it is a bit more difficult to track down.

However I am getting a number of errors that result in the following:

python: Modules/gcmodule.c:277: visit_decref: Assertion `gc->gc.gc_refs != 0' failed.
Aborted

In the past, Kevin and I tried various things to track down the error. I figure the problem revolves around not decrementing a reference count somewhere. Can anyone recommend a strategy for hunting this down? I have to admit that I am not as familiar with the C code base as Kevin was but now I am working on it.

Cheers,
Andrew

P.S: here is output and a coding example that works with stackless.py

STARTING MAIN
DANCER starting 12
PRANCER starting 9
VIXEN starting 12
COMET starting 7
CUPID starting 6
DONER starting 10
DASHER starting 7
BLITZEN starting 11
RUDOLPH starting 9
A starting 2
B starting 4
C starting 4
D starting 6
E starting 8
F starting 2
G starting 4
H starting 7
python: Modules/gcmodule.c:277: visit_decref: Assertion `gc->gc.gc_refs != 0' failed.
Aborted




      



More information about the Stackless mailing list