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 2025/08/31 11:45:00 UTC
[jira] [Updated] (HBASE-18359) CoprocessorHConnection#getConnectionForEnvironment should read config from CoprocessorEnvironment
[ https://issues.apache.org/jira/browse/HBASE-18359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-18359:
------------------------------
Fix Version/s: 4.0.0-alpha-1
(was: 3.0.0-beta-2)
> 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
> Priority: Major
> Fix For: 4.0.0-alpha-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
(v8.20.10#820010)