Loknath Priyatham Teja Singamsetty created PHOENIX-3119:
------------------------------------------------------------
Summary: Setup of mini cluster after tear down still applies older
cluster configs in BaseTest.java
Key: PHOENIX-3119
URL: https://issues.apache.org/jira/browse/PHOENIX-3119
Project: Phoenix
Issue Type: Bug
Reporter: Loknath Priyatham Teja Singamsetty
Problem:
------------
Setup of mini cluster after tear down still applies older cluster configs in
BaseTest.java
Root Cause:
---------------
In BaseTest.java, we have static final instance of Configuration object
initialised:
protected static final Configuration config = HBaseConfiguration.create();
The contents of this final instance of Configuration object is being modified
dynamically inside setUpConfigForMiniCluster() -> setDefaultTestConfig(conf,
overrideProps),
private static void setDefaultTestConfig(Configuration conf, ReadOnlyProps
overrideProps) {
ConfigUtil.setReplicationConfigIfAbsent(conf);
QueryServices services = new PhoenixTestDriver().getQueryServices();
for (Entry<String,String> entry : services.getProps()) {
conf.set(entry.getKey(), entry.getValue());
}
//no point doing sanity checks when running tests.
conf.setBoolean("hbase.table.sanity.checks", false);
// set the server rpc controller and rpc scheduler factory, used to
configure the cluster
conf.set(RpcControllerFactory.CUSTOM_CONTROLLER_CONF_KEY,
DEFAULT_SERVER_RPC_CONTROLLER_FACTORY);
conf.set(RSRpcServices.REGION_SERVER_RPC_SCHEDULER_FACTORY_CLASS,
DEFAULT_RPC_SCHEDULER_FACTORY);
// override any defaults based on overrideProps
for (Entry<String,String> entry : overrideProps) {
conf.set(entry.getKey(), entry.getValue());
}
}
Solution:
------------
When the static final instance needs to be modified, its better to work on
clone instance of Configuration object.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)