[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