HBASE-21485 Add more debug logs for remote procedure execution
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/43a10df7 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/43a10df7 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/43a10df7 Branch: refs/heads/HBASE-20952 Commit: 43a10df70fcf36999ce28e1ba0ac06e0d62ccaf1 Parents: a819875 Author: zhangduo <zhang...@apache.org> Authored: Fri Nov 16 11:18:58 2018 +0800 Committer: zhangduo <zhang...@apache.org> Committed: Fri Nov 16 14:30:59 2018 +0800 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hbase/master/HMaster.java | 2 ++ .../apache/hadoop/hbase/regionserver/RSRpcServices.java | 3 +++ .../regionserver/RemoteProcedureResultReporter.java | 2 ++ .../hbase/regionserver/handler/RSProcedureHandler.java | 11 ++++++----- 4 files changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/43a10df7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index df744b6..31dc208 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -3888,6 +3888,7 @@ public class HMaster extends HRegionServer implements MasterServices { } public void remoteProcedureCompleted(long procId) { + LOG.debug("Remote procedure done, pid={}", procId); RemoteProcedure<MasterProcedureEnv, ?> procedure = getRemoteProcedure(procId); if (procedure != null) { procedure.remoteOperationCompleted(procedureExecutor.getEnvironment()); @@ -3895,6 +3896,7 @@ public class HMaster extends HRegionServer implements MasterServices { } public void remoteProcedureFailed(long procId, RemoteProcedureException error) { + LOG.debug("Remote procedure failed, pid={}", procId, error); RemoteProcedure<MasterProcedureEnv, ?> procedure = getRemoteProcedure(procId); if (procedure != null) { procedure.remoteOperationFailed(procedureExecutor.getEnvironment(), error); http://git-wip-us.apache.org/repos/asf/hbase/blob/43a10df7/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java index 17c582d..df84dcf 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java @@ -3734,10 +3734,13 @@ public class RSRpcServices implements HBaseRPCErrorHandler, callable = Class.forName(request.getProcClass()).asSubclass(RSProcedureCallable.class) .getDeclaredConstructor().newInstance(); } catch (Exception e) { + LOG.warn("Failed to instantiating remote procedure {}, pid={}", request.getProcClass(), + request.getProcId(), e); regionServer.remoteProcedureComplete(request.getProcId(), e); return; } callable.init(request.getProcData().toByteArray(), regionServer); + LOG.debug("Executing remote procedure {}, pid={}", callable.getClass(), request.getProcId()); regionServer.executeProcedure(request.getProcId(), callable); } http://git-wip-us.apache.org/repos/asf/hbase/blob/43a10df7/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.java index ac3e95a..efb044a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RemoteProcedureResultReporter.java @@ -57,9 +57,11 @@ class RemoteProcedureResultReporter extends Thread { public void complete(long procId, Throwable error) { RemoteProcedureResult.Builder builder = RemoteProcedureResult.newBuilder().setProcId(procId); if (error != null) { + LOG.debug("Failed to complete execution of proc pid={}", procId, error); builder.setStatus(RemoteProcedureResult.Status.ERROR).setError( ForeignExceptionUtil.toProtoForeignException(server.getServerName().toString(), error)); } else { + LOG.debug("Successfully complete execution of proc pid={}", procId); builder.setStatus(RemoteProcedureResult.Status.SUCCESS); } results.add(builder.build()); http://git-wip-us.apache.org/repos/asf/hbase/blob/43a10df7/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java index d2175d0..ddff13f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java @@ -42,13 +42,14 @@ public class RSProcedureHandler extends EventHandler { @Override public void process() { - Exception error = null; + Throwable error = null; try { callable.call(); - } catch (Exception e) { - LOG.error("Catch exception when call RSProcedureCallable: ", e); - error = e; + } catch (Throwable t) { + LOG.error("Error when call RSProcedureCallable: ", t); + error = t; + } finally { + ((HRegionServer) server).remoteProcedureComplete(procId, error); } - ((HRegionServer) server).remoteProcedureComplete(procId, error); } }