You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2021/05/31 15:55:00 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=17354533#comment-17354533 ] 

Duo Zhang commented on HBASE-8075:
----------------------------------

Any updates here?

Seems we still have 3 places to call preClose CP hook...

> 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: 1.3.0, 1.2.1, 1.1.4, 0.98.19, 2.0.0
>            Reporter: rajeshbabu
>            Assignee: Stephen Yuan Jiang
>            Priority: Critical
>             Fix For: 3.0.0-alpha-1
>
>         Attachments: HBASE-8075.v1-master.patch
>
>
> 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 was sent by Atlassian Jira
(v8.3.4#803005)