[wingide-users] GC crashes with 3.0?

Bryan Stearns stearns at osafoundation.org
Tue Oct 2 17:19:44 MDT 2007

Helpful Wing folks,

Congratulations on shipping 3.0, from all us Chandler folks!

We've got a problem, though... Those of us here who've just switched 
over from 2.x to 3.0.0-1 (rev 16515) are unable to debug Chandler under 
Wing (whether started from within Wing, or via "import wingdbstub" in 
Chandler, both of which used to work under 2.x).

I don't have a lot of details, so I'm hoping to get advice on how to 
track this down further:

- I see this on Ubuntu (Feisty), as well as on Windows XP; a coworker 
sees it on Mac OSX (Tiger) as well. It happens every time.

- We build our own Python (2.5.1), but I don't think we've changed 
anything relevant (we leave some libs out, and we do turn on some memory 
debugging flags in our python_d builds).

- When run with release python (but without the -O optimization flag), 
python just dies during our application startup. When run with our 
python_d, from under gdb, python screams this on the way out:

Fatal Python error: ../Objects/funcobject.c:449 object at 0x936cb28 has 
negative ref count -606348326

- The stack trace (I've pasted the first dozen or so lines below) seems 
to indicate that we're in the process of garbage collection, but beyond 
that, I'm stumped.

Any suggestions on what I might look at next?


#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e62df0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e64641 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0x08112655 in Py_FatalError (
     msg=0xbf8a5b6c "../Objects/funcobject.c:449 object at 0x936cb28 has 
negative ref count -606348326") at ../Python/pythonrun.c:1559
#4  0x080906e3 in _Py_NegativeRefcount (
     fname=0x817b67d "../Objects/funcobject.c", lineno=449, op=0x936cb28)
     at ../Objects/object.c:193
#5  0x08147247 in func_dealloc (op=0xb1b4e94) at ../Objects/funcobject.c:449
#6  0x080947ca in _Py_Dealloc (op=0xb1b4e94) at ../Objects/object.c:1928
#7  0x0808bab4 in PyDict_Clear (op=0xb1b0a34) at ../Objects/dictobject.c:753
#8  0x0808f0f0 in dict_tp_clear (op=0xb1b0a34) at 
#9  0x0811e2cf in delete_garbage (collectable=0xbf8a5df4, old=0x819ae68)
     at ../Modules/gcmodule.c:713
#10 0x0811e774 in collect (generation=1) at ../Modules/gcmodule.c:849
#11 0x0811e8a1 in collect_generations () at ../Modules/gcmodule.c:897
#12 0x0811f2aa in _PyObject_GC_Malloc (basicsize=52)
     at ../Modules/gcmodule.c:1333
#13 0x0811f2dc in _PyObject_GC_New (tp=0x81a6280) at 
#14 0x081460e2 in PyFunction_New (code=0x93763e8, globals=0x932fd54)
     at ../Objects/funcobject.c:12

More information about the wingide-users mailing list