[ https://issues.apache.org/jira/browse/HBASE-14521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14948020#comment-14948020 ]
Hadoop QA commented on HBASE-14521: ----------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12765500/HBASE-14521_v2.patch against master branch at commit 7e30436e3fa84525b85b05b9e23cb01b2ada7c12. ATTACHMENT ID: 12765500 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 9 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.7.0 2.7.1) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.client.TestAsyncProcess Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15909//testReport/ Release Findbugs (version 2.0.3) warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15909//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15909//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15909//console This message is automatically generated. > Unify the semantic of hbase.client.retries.number > ------------------------------------------------- > > Key: HBASE-14521 > URL: https://issues.apache.org/jira/browse/HBASE-14521 > Project: HBase > Issue Type: Bug > Affects Versions: 0.98.14, 1.1.2 > Reporter: Yu Li > Assignee: Yu Li > Fix For: 2.0.0, 1.3.0 > > Attachments: HBASE-14521.patch, HBASE-14521_v2.patch > > > From name of the _hbase.client.retries.number_ property, it should be the > number of maximum *retries*, or say if we set the property to 1, there should > be 2 attempts in total. However, there're two different semantics when using > it in current code base. > For example, in ConnectionImplementation#locateRegionInMeta: > {code} > int localNumRetries = (retry ? numTries : 1); > for (int tries = 0; true; tries++) { > if (tries >= localNumRetries) { > throw new NoServerForRegionException("Unable to find region for " > + Bytes.toStringBinary(row) + " in " + tableName + > " after " + numTries + " tries."); > } > {code} > the retries number is regarded as max times for *tries* > While in RpcRetryingCallerImpl#callWithRetries: > {code} > for (int tries = 0;; tries++) { > long expectedSleep; > try { > callable.prepare(tries != 0); // if called with false, check table > status on ZK > interceptor.intercept(context.prepare(callable, tries)); > return callable.call(getRemainingTime(callTimeout)); > } catch (PreemptiveFastFailException e) { > throw e; > } catch (Throwable t) { > ... > if (tries >= retries - 1) { > throw new RetriesExhaustedException(tries, exceptions); > } > {code} > it's regarded as exactly for *REtry* (try a call first with no condition and > then check whether to retry or exceeds maximum retry number) > This inconsistency will cause misunderstanding in usage, such as one of our > customer set the property to zero expecting one single call but finally > received NoServerForRegionException. > We should unify the semantic of the property, and I suggest to keep the > original one for retry rather than total tries. -- This message was sent by Atlassian JIRA (v6.3.4#6332)