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)