[ https://issues.apache.org/jira/browse/HBASE-19260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16257771#comment-16257771 ]
Hudson commented on HBASE-19260: -------------------------------- FAILURE: Integrated in Jenkins build HBase-1.2-JDK7 #281 (See [https://builds.apache.org/job/HBase-1.2-JDK7/281/]) HBASE-19260 Add lock back to avoid parallel accessing meta to locate (stack: rev ea9d1713d272a2a062a6fe3054fbcce37dbb10d6) * (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java > Add lock back to avoid parallel accessing meta to locate region > --------------------------------------------------------------- > > Key: HBASE-19260 > URL: https://issues.apache.org/jira/browse/HBASE-19260 > Project: HBase > Issue Type: Bug > Affects Versions: 1.3.1, 1.2.6, 2.0.0-alpha-3, 1.1.12 > Reporter: Yu Li > Assignee: Yu Li > Fix For: 1.4.0, 1.3.2, 1.2.7, 2.0.0-beta-1 > > Attachments: HBASE-19260.patch, HBASE-19260.v2.patch > > > In branch-0.98 we have below codes to avoid accessing meta in parallel in > {{HConnectionManager}}: > {code} > Result regionInfoRow; > // This block guards against two threads trying to load the meta > // region at the same time. The first will load the meta region and > // the second will use the value that the first one found. > if (useCache) { > if (TableName.META_TABLE_NAME.equals(parentTable) && usePrefetch > && > getRegionCachePrefetch(tableName)) { > synchronized (regionLockObject) { > // Check the cache again for a hit in case some other thread > made the > // same query while we were waiting on the lock. > ... > } > } > ... > {code} > while in HBASE-10018 we removed such logic along with > region-location-prefetching. > We regard this as an unexpected behavior change and observed below phenomenon > in our product env: > 1. Unnecessary connection setup to meta when multiple threads locating region > in a client process > 2. Priority handler of the RS holding meta region exhausted, application keep > retrying and cause a vicious circle > To resolve this problem, we propose to add the {{userRegionLock}} back and > keep the behavior in accordance with 0.98 -- This message was sent by Atlassian JIRA (v6.4.14#64029)