[
https://issues.apache.org/jira/browse/HBASE-16520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15449982#comment-15449982
]
Ted Yu commented on HBASE-16520:
--------------------------------
Is there API for obtaining hbase module given class ?
What if new procedure is added to other module(s) ?
IMHO if a no-owner procedure is loaded and then aborted, the resulting master
crash is something we should avoid.
Currently I am considering this change:
{code}
diff --git
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
index f714260..12353b4 100644
---
a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
+++
b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java
@@ -650,6 +650,7 @@ public class ProcedureExecutor<TEnvironment> {
Preconditions.checkArgument(isRunning());
Preconditions.checkArgument(lastProcId.get() >= 0);
Preconditions.checkArgument(!proc.hasParent());
+ Preconditions.checkArgument(proc.getOwner() != null);
// Initialize the Procedure ID
long currentProcId = nextProcId();
{code}
I plan to log another JIRA since there're test procedures which owner should be
set.
> TableBackupProcedure ctor should set procedure owner
> ----------------------------------------------------
>
> Key: HBASE-16520
> URL: https://issues.apache.org/jira/browse/HBASE-16520
> Project: HBase
> Issue Type: Bug
> Reporter: Ted Yu
> Assignee: Ted Yu
> Labels: backup
> Attachments: 16520.HBASE-7912.v2.txt, 16520.HBASE-7912.v3.txt,
> 16520.v1.txt
>
>
> I was trying to abort a procedure which led to master shutdown.
> Toward tail of the master log, I saw:
> {code}
> 2016-08-29 20:25:26,180 ERROR
> [B.fifo.QRpcServer.handler=16,queue=1,port=20000]
> coprocessor.CoprocessorHost: The coprocessor
> org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor threw
> java.lang.NullPointerException
> java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.isProcedureOwner(ProcedureExecutor.java:653)
> at
> org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.preAbortProcedure(RangerAuthorizationCoprocessor.java:835)
> at
> org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.preAbortProcedure(RangerAuthorizationCoprocessor.java:3107)
> at
> org.apache.hadoop.hbase.master.MasterCoprocessorHost$47.call(MasterCoprocessorHost.java:601)
> at
> org.apache.hadoop.hbase.master.MasterCoprocessorHost.execOperation(MasterCoprocessorHost.java:1146)
> at
> org.apache.hadoop.hbase.master.MasterCoprocessorHost.preAbortProcedure(MasterCoprocessorHost.java:597)
> at
> org.apache.hadoop.hbase.master.HMaster.abortProcedure(HMaster.java:2654)
> at
> org.apache.hadoop.hbase.master.MasterRpcServices.abortProcedure(MasterRpcServices.java:1070)
> at
> org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:57274)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2127)
> {code}
> Under /procedures.jsp (after restart), the procedure I tried to abort had
> null as Owner.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)