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)

Reply via email to