[ https://issues.apache.org/jira/browse/HBASE-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13642826#comment-13642826 ]
Hudson commented on HBASE-8393: ------------------------------- Integrated in HBase-TRUNK-on-Hadoop-2.0.0 #511 (See [https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/511/]) HBASE-8393 Testcase TestHeapSize#testMutations is wrong (Jeffrey) (Revision 1476022) Result = FAILURE 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