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)