Re: Descriptor leak in python 2.4 subprocess module

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Tim Golden

    Re: Descriptor leak in python 2.4 subprocess module

    Michel Lespinasse wrote:
    Hi,
    >
    I hit an issue with the following python code:
    >
    try:
    get_orient = subprocess.Pope n (['jpegexiforient ', '-n', pathfull],
    stdin = subprocess.PIPE ,
    stdout = subprocess.PIPE )
    orient = get_orient.comm unicate ()[0]
    except:
    orient = None
    >
    The intent of this was to read the exif orientation of a picture, or just
    use None if jpegexiforient can not run.
    >
    The application worked fine on my devel machine but I noticed that on a
    different host, it crashed due to running out of file descriptors.
    After investigation I found out that the above code was responsible,
    leaking two file descriptors per invocation if jpegexiforient is not
    installed on the host.
    >
    I don't see any way to fix it in my code either, since get_orient is not
    defined in the exception path, there is no way I can close its file
    descriptors myself. I believe this is a bug in the subprocess module,
    it should make sure to clean up after itself when getting out on the
    exception path.

    This looks like a duplicate of http://bugs.python.org/issue3210.
    Can you confirm if this seems likely (and, if so, perhaps add
    a note to the bug indicating that the problem is on Linux as well)?

    TJG
Working...