You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Ian Rogers (JIRA)" <ji...@apache.org> on 2015/01/30 04:58:34 UTC

[jira] [Created] (HADOOP-11526) Memory leak in Bzip2Decompressor

Ian Rogers created HADOOP-11526:
-----------------------------------

             Summary: Memory leak in Bzip2Decompressor
                 Key: HADOOP-11526
                 URL: https://issues.apache.org/jira/browse/HADOOP-11526
             Project: Hadoop Common
          Issue Type: Bug
          Components: io
            Reporter: Ian Rogers


The use of JNI's GetStringUTFChars should be paired with ReleaseStringUTFChars or else the utf-8 char* created by Java's JNI implementation is leaked. It isn't in Bzip2Decompressor.c:

https://apache.googlesource.com/hadoop-common/+/refs/heads/trunk/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/compress/bzip2/Bzip2Decompressor.c#45

A less error-prone way of handling JNI resources like local references and UTF strings is to use a smart pointer like the Apache licensed code in Android's ScopedLocalRef and ScopedUtfChars:

https://android.googlesource.com/platform/libnativehelper/+/jb-mr1.1-dev-plus-aosp/include/nativehelper/ScopedLocalRef.h
https://android.googlesource.com/platform/libnativehelper/+/jb-mr1.1-dev-plus-aosp/include/nativehelper/ScopedUtfChars.h



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)