[Python-Dev] Re: [Python-checkins] python/dist/src/Objects typeobject.c,2.242,2.243

Michael Hudson mwh at python.net
Fri Aug 8 18:44:03 EDT 2003


Michael Hudson <mwh at python.net> writes:

> mwh at users.sourceforge.net writes:
>
>> Update of /cvsroot/python/python/dist/src/Objects
>> In directory sc8-pr-cvs1:/tmp/cvs-serv29176
>>
>> Modified Files:
>> 	typeobject.c 
>> Log Message:
>> /* XXX From here until type is allocated, "return NULL" leaks bases! */
>>
>> Sure looks like it to me! <wink>
>>
>> When I run the leak2.py script I posted to python-dev, I only see
>> three reference leaks in all of test_descr.  When I run
>> test_descr.test_main, I still see 46 leaks.  This clearly demands
>> posting a yelp to python-dev :-)
>
> This is deeply weird.  Watch:
>
> [mwh at pc150 build-debug]$ ./python.exe 
> Python 2.4a0 (#25, Aug  8 2003, 14:17:07) 
> [GCC 3.1 20020420 (prerelease)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from test import test_support 
> [40915 refs]
>>>> test_support.verbose = 0
> [41028 refs]
>>>> from test import test_descr  
> [56312 refs]
>>>> import gc
> [56439 refs]
>>>> for i in range(5): # just to get things to stabilize
> ...  test_descr.test_main(); gc.collect()
> ... 
> 273
> 297
> 297
> 297
> 297
> [66427 refs] ----------------------------------.
>>>> test_descr.test_main(); gc.collect()       | leaks 46 refs
> 297                                            |
> [66473 refs] <---------------------------------:
>>>> test_descr.test_main(); gc.collect()       |
> 297                                            | and again
> [66519 refs] <---------------------------------'

I missed a "gc.set_threshold(193, 10, 10)" out here...

>>>> test_descr.test_main(); gc.collect()
> 32
> [66523 refs] ----------------------------------.
>>>> test_descr.test_main(); gc.collect()       | now we leak
> 32                                             | just three!
> [66526 refs] <---------------------------------'
>>>> gc.set_threshold(193, 10, 10)
> [66526 refs]
>>>> test_descr.test_main(); gc.collect()
> 32
> [66571 refs] ----------------------------------.
>>>> test_descr.test_main(); gc.collect()       | back to 46!
> 32                                             |
> [66617 refs] <---------------------------------'
>>>> 
>
> Help!?  Anyone!? (Neil!?)
>
> bewildered-ly y'rs,
> mwh
>
> -- 
>   Ya, ya, ya, except ... if I were built out of KSR chips, I'd
>   be running at 25 or 50 MHz, and would be wrong about ALMOST
>   EVERYTHING almost ALL THE TIME just due to being a computer!
>                                               -- Tim Peters, 30 Apr 97
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev

-- 
  You owe The Oracle a TV with an 'intelligence' control - I've
  tried 'brightness' but that didn't work.
                                      -- Internet Oracularity #1192-01



More information about the Python-Dev mailing list