[ 
https://issues.apache.org/jira/browse/HADOOP-11901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14525437#comment-14525437
 ] 

Gopal V commented on HADOOP-11901:
----------------------------------

If the only goal is overflow prevention you can skip a multiply and do {{size + 
size/2}} - the jdk bin-search bug was similar.

> BytesWritable supports only up to ~700MB (instead of 2G) due to integer 
> overflow.
> ---------------------------------------------------------------------------------
>
>                 Key: HADOOP-11901
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11901
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Reynold Xin
>            Assignee: Reynold Xin
>         Attachments: HADOOP-11901.diff
>
>
> BytesWritable.setSize increases the buffer size by 1.5 each time ( * 3 / 2). 
> This is an unsafe operation since it restricts the max size to ~700MB, since 
> 700MB * 3 > 2GB.
> I didn't write a test case for this case because in order to trigger this, 
> I'd need to allocate around 700MB, which is pretty expensive to do in a unit 
> test. Note that I didn't throw any exception in the case integer overflow as 
> I didn't want to change that behavior (callers to this might expect a 
> java.lang.NegativeArraySizeException).



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

Reply via email to