[
https://issues.apache.org/jira/browse/HBASE-14598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14958128#comment-14958128
]
Hudson commented on HBASE-14598:
--------------------------------
SUCCESS: Integrated in HBase-1.2 #255 (See
[https://builds.apache.org/job/HBase-1.2/255/])
HBASE-14598 ByteBufferOutputStream grows its HeapByteBuffer beyond JVM (stack:
rev 34d7971d1a7bed8f732cceb382e2cc52e4a6954c)
* hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/IPCUtil.java
*
hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBufferOutputStream.java
> ByteBufferOutputStream grows its HeapByteBuffer beyond JVM limitations
> ----------------------------------------------------------------------
>
> Key: HBASE-14598
> URL: https://issues.apache.org/jira/browse/HBASE-14598
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.98.12
> Reporter: Ian Friedman
> Assignee: Ian Friedman
> Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3
>
> Attachments: 14598.txt, hbase-14598-v1 (1).patch,
> hbase-14598-v1.patch, hbase-14598-v1.patch, hbase-14598-v1.patch
>
>
> We noticed that in returning a Scan against a region containing particularly
> large (wide) rows that it is possible during
> ByteBufferOutputStream.checkSizeAndGrow() to attempt to create a new
> ByteBuffer larger than the JVM allows which then throws a OutOfMemoryError.
> The code currently caps it at Integer.MAX_VALUE which is actually larger than
> the JVM allows. This lead to us dealing with cascading region server death as
> the RegionServer hosting the region died, opened on a new server, the client
> retried the scan, and the new RS died as well.
> I believe ByteBufferOutputStream should not try to create ByteBuffers that
> large and instead throw an exception back up if it needs to grow any bigger.
> The limit should probably be something like Integer.MAX_VALUE-8, as that is
> what ArrayList uses. ref:
> http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/util/ArrayList.java#221
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)