[Originally posted to comp.lang.python with no response; asking here before filing a bug report]
Is garbage collection supposed to run when Python exits? The following program does not print any output, unless I uncomment the gc.collect() (or add a for loop that forces GC after creating the cycle):
class A: pass
class B: def __del__(self): print "Bye-bye!"
a = A() b = A() a.b = b b.a = a a.x = B()
del a del b