[Python-Dev] Resource leaks warnings

Antoine Pitrou solipsis at pitrou.net
Wed Sep 29 13:01:56 CEST 2010


> I'd like to ask your opinion on this change; I think it should be reverted
> or at least made silent by default.  Basically, it prints a warning like
>       gc: 2 uncollectable objects at shutdown:
>           Use gc.set_debug(gc.DEBUG_UNCOLLECTABLE) to list them.
> at interpreter shutdown if gc.garbage is nonempty.

I would like to piggy-back on this discussion to suggest further
warnings (either by default, or switchable).

One feature I've often considered would be to add a warning in FileIO
and socket dealloc if these objects haven't been closed explicitly. In
most situations, relying on garbage collection to shutdown OS resources
(here, file descriptors) is something we like to discourage.
Furthermore, it can produce real bugs, especially under Windows when
coupled with refererence cycles created by traceback objects (the
random test_tarfile failures on the Windows buildbots were a symptom of
that; their cause would have been obvious with such warnings).

What do you think?


More information about the Python-Dev mailing list