Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-14157

Interfaces implemented by subclasses should be checked when registering CoprocessorService

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      Alok reported seeing the following exception when subclass of class which implements CoprocessorService is used for hbase.coprocessor.region.classes :

      hbase(main):015:0> grant 'mktg1', 'RWC', 'iemployee'
      
      ERROR: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name AccessControlService in region hbase:acl,,1437137157604.2daf735ea38da95e9ba249db6b63b79c.
              at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7367)
              at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1873)
              at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1855)
              at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32209)
              at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2112)
              at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:101)
              at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
              at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
      

      The root cause is in the following code of RegionCoprocessorHost:

          for (Class<?> c : implClass.getInterfaces()) {
            if (CoprocessorService.class.isAssignableFrom(c)) {
              region.registerService( ((CoprocessorService)instance).getService() );
            }
          }
      

      We currently only check the interfaces directly implemented by the underlying class.
      What should be done is to check all the interfaces implemented by class itself and its superclasses.

      Attachments

        1. 14157-v4.txt
          7 kB
          Ted Yu
        2. 14157-v3.txt
          6 kB
          Ted Yu
        3. 14157-v2.txt
          4 kB
          Ted Yu
        4. 14157-v2.txt
          4 kB
          Ted Yu
        5. 14157-v1.txt
          1 kB
          Ted Yu

        Activity

          People

            yuzhihong@gmail.com Ted Yu
            alok Alok Lal
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: