[ https://issues.apache.org/jira/browse/HBASE-17872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15958275#comment-15958275 ]
Chia-Ping Tsai commented on HBASE-17872: ---------------------------------------- bq. Consider introducing trivial change in hbase-server module to run tests. It is better to run the Test*FromClient without unsafe. But it will introduce a large test and we must expose the BBU#unsafe API. see v1 patch. > The MSLABImpl generates the invaild cells when unsafe is not availble > --------------------------------------------------------------------- > > Key: HBASE-17872 > URL: https://issues.apache.org/jira/browse/HBASE-17872 > Project: HBase > Issue Type: Bug > Reporter: Chia-Ping Tsai > Assignee: Chia-Ping Tsai > Priority: Critical > Fix For: 2.0.0 > > Attachments: HBASE-17872.v0.patch > > > We will get the wrong position of buffer in multithreaded environment, so the > method makes the invalid cell in MSLAB. > {noformat} > public static int copyFromBufferToBuffer(ByteBuffer in, ByteBuffer out, int > sourceOffset, > int destinationOffset, int length) { > if (in.hasArray() && out.hasArray()) { > // ... > } else if (UNSAFE_AVAIL) { > // ... > } else { > int outOldPos = out.position(); > out.position(destinationOffset); > ByteBuffer inDup = in.duplicate(); > inDup.position(sourceOffset).limit(sourceOffset + length); > out.put(inDup); > out.position(outOldPos); > } > return destinationOffset + length; > } > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)