[jira] [Updated] (HBASE-8393) Testcase TestHeapSize#testMutations is wrong

2013-04-26 Thread Ted Yu (JIRA)

 [ 
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

2013-04-25 Thread Ted Yu (JIRA)

 [ 
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

2013-04-22 Thread Jeffrey Zhong (JIRA)

 [ 
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

2013-04-22 Thread Jeffrey Zhong (JIRA)

 [ 
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