Jerry He created HBASE-16149:
--------------------------------
Summary: Log the underlying RPC exception in RpcRetryingCallerImpl
Key: HBASE-16149
URL: https://issues.apache.org/jira/browse/HBASE-16149
Project: HBase
Issue Type: Improvement
Affects Versions: 1.2.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
In RpcRetryingCallerImpl:
{code}
public T callWithRetries(RetryingCallable<T> callable, int callTimeout)
throws IOException, RuntimeException {
...
for (int tries = 0;; tries++) {
try {
...
return callable.call(getTimeout(callTimeout));
...
} catch (Throwable t) {
ExceptionUtil.rethrowIfInterrupt(t);
if (tries > startLogErrorsCnt) {
LOG.info("Call exception, tries=" + tries + ", maxAttempts=" +
maxAttempts + ", started="
+ (EnvironmentEdgeManager.currentTime() - tracker.getStartTime())
+ " ms ago, "
+ "cancelled=" + cancelled.get() + ", msg="
+ callable.getExceptionMessageAdditionalDetail());
}
...
{code}
We log the callable.getExceptionMessageAdditionalDetail() msg. But
callable.getExceptionMessageAdditionalDetail() may not provide the underlying
cause..
For example, in AbstractRegionServerCallable,
{code}
public String getExceptionMessageAdditionalDetail() {
return "row '" + Bytes.toString(row) + "' on table '" + tableName + "' at "
+ location;
}
{code}
Let's add the underlying exception cause to the message as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)