[ https://issues.apache.org/jira/browse/HBASE-6520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13439505#comment-13439505 ]
Hudson commented on HBASE-6520: ------------------------------- Integrated in HBase-0.94-security #48 (See [https://builds.apache.org/job/HBase-0.94-security/48/]) HBASE-6520 MSLab May cause the Bytes.toLong not work correctly for increment (ShiXing) (Revision 1371045) Result = FAILURE larsh : Files : * /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java * /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java > MSLab May cause the Bytes.toLong not work correctly for increment > ----------------------------------------------------------------- > > Key: HBASE-6520 > URL: https://issues.apache.org/jira/browse/HBASE-6520 > Project: HBase > Issue Type: Bug > Reporter: ShiXing > Assignee: ShiXing > Fix For: 0.96.0, 0.94.2 > > Attachments: HBASE-6520-0.94-v1.patch, HBASE-6520-trunk-v1.patch > > > When use MemStoreLAB, the KeyValues will share the byte array allocated by > the MemStoreLAB, all the KeyValues' "bytes" attributes are the same byte > array. When use the functions such as Bytes.toLong(byte[] bytes, int offset): > {code} > public static long toLong(byte[] bytes, int offset) { > return toLong(bytes, offset, SIZEOF_LONG); > } > public static long toLong(byte[] bytes, int offset, final int length) { > if (length != SIZEOF_LONG || offset + length > bytes.length) { > throw explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_LONG); > } > long l = 0; > for(int i = offset; i < offset + length; i++) { > l <<= 8; > l ^= bytes[i] & 0xFF; > } > return l; > } > {code} > If we do not put a long value to the KeyValue, and read it as a long value in > HRegion.increment(),the check > {code} > offset + length > bytes.length > {code} > will take no effects, because the bytes.length is not equal to > keyLength+valueLength, indeed it is MemStoreLAB chunkSize which is default > 2048 * 1024. > I will paste the patch later. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira