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.
K

-----Original Message-----
From: [email protected] [mailto:[email protected]] 
On Behalf Of Andrew Francis
Sent: Monday, November 29, 2010 5:17
To: [email protected]
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


      

_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to