[ https://issues.apache.org/jira/browse/HBASE-16149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jerry He updated HBASE-16149: ----------------------------- Status: Patch Available (was: Open) > 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 > Attachments: HBASE-16149.patch > > > 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)