[
https://issues.apache.org/jira/browse/HBASE-20822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16536097#comment-16536097
]
Duo Zhang commented on HBASE-20822:
-----------------------------------
OK the problem is in locateRowBeforeInCache...
As the netty thread may modify the meta cache after finishing the
CompletableFuture, so there maybe races that after we call clearCache in the
test, it then adds some entries into cache, and then cause the test to fail.
The problem for locateRowBeforeInCache is that, when the row we want to locate
is an empty array, then we just get the last entry, and the check is
{code}
if (isEmptyStopRow(loc.getRegion().getEndKey()) ||
Bytes.compareTo(loc.getRegion().getEndKey(), row) >= 0) {
{code}
Obviously if the row is a empty row then the second condition will always
pass...
Let me add a UT to reproduce it more easily and fix the problem.
> TestAsyncNonMetaRegionLocator is flakey
> ---------------------------------------
>
> Key: HBASE-20822
> URL: https://issues.apache.org/jira/browse/HBASE-20822
> Project: HBase
> Issue Type: Bug
> Components: asyncclient
> Reporter: Duo Zhang
> Priority: Major
> Attachments:
> org.apache.hadoop.hbase.client.TestAsyncNonMetaRegionLocator-output.txt
>
>
> This is a critical one, the error is result mismatch. Need to find out why.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)