Matteo Bertozzi created HBASE-15746:
---------------------------------------

             Summary: RegionCoprocessor preClose() called 3 times
                 Key: HBASE-15746
                 URL: https://issues.apache.org/jira/browse/HBASE-15746
             Project: HBase
          Issue Type: Bug
          Components: Coprocessors, regionserver
    Affects Versions: 0.98.19, 1.1.4, 1.2.1, 2.0.0, 1.3.0
            Reporter: Matteo Bertozzi
            Priority: Minor


The preClose() region coprocessor call gets called 3 times via rpc.

The first one is when we receive the RPC
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java#L1329

The second time is when ask the RS to close the region
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java#L2852

The third time is when the doClose() on the region is executed.
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java#L1419

I'm pretty sure the first one can be removed since, there is no code between 
that and the second call. and they are a copy-paste.

The second one explicitly says that is to enforce ACLs before starting the 
operation, which leads me to the fact that the 3rd one in the region gets 
executed too late in the process. but the region.close() may be called by 
someone other than the RS, so we should probably leave the preClose() in there 
(e.g. OpenRegionHandler on failure cleanup). 

any idea?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to