[jira] [Updated] (HBASE-8393) Testcase TestHeapSize#testMutations is wrong
[ https://issues.apache.org/jira/browse/HBASE-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-8393: -- Resolution: Fixed Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) 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
[jira] [Updated] (HBASE-8393) Testcase TestHeapSize#testMutations is wrong
[ https://issues.apache.org/jira/browse/HBASE-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-8393: -- Fix Version/s: 0.95.1 0.98.0 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
[jira] [Updated] (HBASE-8393) Testcase TestHeapSize#testMutations is wrong
[ https://issues.apache.org/jira/browse/HBASE-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeffrey Zhong updated HBASE-8393: - Status: Patch Available (was: Open) 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 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
[jira] [Updated] (HBASE-8393) Testcase TestHeapSize#testMutations is wrong
[ https://issues.apache.org/jira/browse/HBASE-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeffrey Zhong updated HBASE-8393: - Attachment: hbase-8393.patch 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 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