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)