curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CURATOR-354) GzipCompressionProvider leaks native memory
Date Thu, 06 Oct 2016 21:16:20 GMT


ASF GitHub Bot commented on CURATOR-354:

GitHub user epollan opened a pull request:

    CURATOR-354: native memory leak in GzipCompressionProvider

    explicitly close GZIP input/output streams in GzipCompressionProvider

You can merge this pull request into a Git repository by running:

    $ git pull CURATOR-354

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #168
commit 8c1b4be57ffaf58ce8708e0e9d3611e4e5955f2e
Author: Evan Pollan <>
Date:   2016-10-06T20:53:04Z

    CURATOR-354: explicitly close GZIP input/output streams in GzipCompressionProvider


> GzipCompressionProvider leaks native memory
> -------------------------------------------
>                 Key: CURATOR-354
>                 URL:
>             Project: Apache Curator
>          Issue Type: Bug
>    Affects Versions: 2.11.0
>            Reporter: Evan Pollan
>            Assignee: Jordan Zimmerman
>         Attachments: RSS before and after fix.png
> Both compress and decompress instantiate GZIP streams, use them, and don't close them.
 The java util deflate/inflate streams use JNI to leverage zlib, including the allocation
of a native, off-heap buffer.  
> These JNI buffer handles are released when the containing stream is closed.  They're
also released by the finalize() method on, _but_ it looks
as if the native memory can pile up quickly enough in certain use cases where the JVM is OOM
killed before the finalizer does its thing.
> Fix is to explicitly close these streams after they're used.
> This was discovered in version 2.11.0, but it looks like the problem affects all versions
for which {{GzipCompressionProvider}} existed.

This message was sent by Atlassian JIRA

View raw message