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

Hudson commented on HBASE-8393:
-------------------------------

Integrated in HBase-TRUNK #4081 (See 
[https://builds.apache.org/job/HBase-TRUNK/4081/])
    HBASE-8393 Testcase TestHeapSize#testMutations is wrong (Jeffrey) (Revision 
1476022)

     Result = SUCCESS
tedyu : 
Files : 
* 
/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Mutation.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java

                
> Testcase TestHeapSize#testMutations is wrong
> --------------------------------------------
>
>                 Key: HBASE-8393
>                 URL: https://issues.apache.org/jira/browse/HBASE-8393
>             Project: HBase
>          Issue Type: Bug
>          Components: test
>            Reporter: Jeffrey Zhong
>            Assignee: Jeffrey Zhong
>             Fix For: 0.98.0, 0.95.1
>
>         Attachments: hbase-8393.patch
>
>
> I happened to check this test case and there are several existing errors to 
> make it pass. You can reproduce the test case failure by adding a new field 
> into Mutation, the test case will either fail on a 64 bit system or 32 bit 
> one.
> Below are errors I found in the test case:
> 1) The test case is using {code}row=new byte[]{0}{code} which is an array 
> with length=1 while ClassSize.estimateBase can only calculate base class 
> size(without counting field array length)
> 2) Add ClassSize.REFERENCE twice in the following code because 
> ClassSize.estimateBase adds all reference fields already. {code}expected += 
> ClassSize.align(ClassSize.TREEMAP + ClassSize.REFERENCE);{code}
> 3) ClassSize.estimateBase round up the sum of length of reference fields + 
> primitive fields + Array while Mutation.MUTATION_OVERHEAD aligns the sum of 
> length of a different set of fields. Therefore, there will be round up 
> differences for class Increment because it introduces a new reference field 
> TimeRange tr when the test case runs on a 32bit and 64 bit system.   
> {code}
> ...
>     long prealign_size = coeff[0] + align(coeff[1] * ARRAY) + coeff[2] * 
> REFERENCE;
>     // Round up to a multiple of 8
>     long size = align(prealign_size);
> ...
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to