You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "chunhui shen (JIRA)" <ji...@apache.org> on 2013/03/12 03:57:12 UTC

[jira] [Commented] (HBASE-8075) HRegion preClose hook is getting called multiple times for single close

    [ https://issues.apache.org/jira/browse/HBASE-8075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13599641#comment-13599641 ] 

chunhui shen commented on HBASE-8075:
-------------------------------------

Checked the other hooks of RegionCoprocessorHost,

preOpen() also called by HRegion#initializeRegionInternals and HRegionServer#openRegion
                
> HRegion preClose hook is getting called multiple times for single close
> -----------------------------------------------------------------------
>
>                 Key: HBASE-8075
>                 URL: https://issues.apache.org/jira/browse/HBASE-8075
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors
>    Affects Versions: 0.95.0
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>             Fix For: 0.98.0, 0.94.7
>
>
> 1) HRegionServer#closeRegion(final RpcController controller,
>       final CloseRegionRequest request)
> {code}
>       // Can be null if we're calling close on a region that's not online
>       final HRegion region = this.getFromOnlineRegions(encodedRegionName);
>       if ((region  != null) && (region .getCoprocessorHost() != null)) {
>         region.getCoprocessorHost().preClose(false);
>       }
> {code}
> 2) HRegionServer#closeRegion(String encodedName, final boolean abort,
>       final boolean zk, final int versionOfClosingNode, final ServerName sn)
> {code}
>     if ((actualRegion != null) && (actualRegion.getCoprocessorHost() != null)) {
>       try {
>         actualRegion.getCoprocessorHost().preClose(false);
>       } catch (IOException exp) {
>         LOG.warn("Unable to close region: the coprocessor launched an error ", exp);
>         return false;
>       }
>     }
> {code}
> 3) HRegion#  private List<StoreFile> doClose(
>       final boolean abort, MonitoredTask status)
> {code}
>     if (coprocessorHost != null) {
>       status.setStatus("Running coprocessor pre-close hooks");
>       this.coprocessorHost.preClose(abort);
>     }
> {code}
> IMO 3rd one is enough and remaining two are not needed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira