hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-18359) CoprocessorHConnection#getConnectionForEnvironment should read config from CoprocessorEnvironment
Date Thu, 16 Nov 2017 17:20:01 GMT

     [ https://issues.apache.org/jira/browse/HBASE-18359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

stack updated HBASE-18359:
    Fix Version/s: 2.0.0-beta-1

> CoprocessorHConnection#getConnectionForEnvironment should read config from CoprocessorEnvironment
> -------------------------------------------------------------------------------------------------
>                 Key: HBASE-18359
>                 URL: https://issues.apache.org/jira/browse/HBASE-18359
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Samarth Jain
>             Fix For: 2.0.0-beta-1
> It seems like the method getConnectionForEnvironment isn't doing the right thing when
it is creating a CoprocessorHConnection by reading the config from HRegionServer and not from
the env passed in. 
> If coprocessors want to use a CoprocessorHConnection with some custom config settings,
then they have no option but to configure it in the hbase-site.xml of the region servers.
This isn't ideal as a lot of times these "global" level configs can have side effects. See
PHOENIX-3974 as an example where configuring ServerRpcControllerFactory (a Phoenix implementation
of RpcControllerFactory) could result in deadlocks. Or PHOENIX-3983 where presence of this
global config causes our index rebuild code to incorrectly use handlers it shouldn't.
> If the CoprocessorHConnection created through getConnectionForEnvironment API used the
CoprocessorEnvironment config, then it would allow co-processors to pass in their own config
without needing to configure them in hbase-site.xml. 
> The change would be simple. Basically change the below
> {code}
> if (services instanceof HRegionServer) {
>         return new CoprocessorHConnection((HRegionServer) services);
> }
> {code}
> to
> {code}
> if (services instanceof HRegionServer) {
>         return new CoprocessorHConnection(env.getConfiguration(), (HRegionServer) services);
> }
> {code}

This message was sent by Atlassian JIRA

View raw message