[ https://issues.apache.org/jira/browse/PHOENIX-3113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15393705#comment-15393705 ]
Loknath Priyatham Teja Singamsetty commented on PHOENIX-3113: -------------------------------------------------------------- [~jamestaylor] The unit tests in AsyncIndexIT.java tests two scenario's a) with {code}phoenix.async.index.automatic.build=true{code} to enable index rebuilding b) with {code}phoenix.async.index.automatic.build=false{code} to disable index rebuilding For the above tests, there is need for coprocessor to be reloaded with latest config {quote}Override the default to true in QueryServicesTestImpl{quote} Sure will do. This is not required for the AsyncIndexIT.java, but will be required in general for all the other tests. {quote} AsyncImmutableIndexIT and AsyncIndexIT, derive them from BaseHBaseManagedTimeIT, remove the setup and tearDown code and all DROP commands - tests do not need to explicitly drop tables. Just keep a test that validates that an ASYNC index is populated as expected. There should be no special setup required. {quote} This change can be done for AsyncImmutableIndexIT where the unit test setup is based on empty props. Will do the changes. However, for AsyncIndexIT, deriving from BaseHBaseManagedTimeIT will not be of great help. As we would need to run one unit test with empty props of sever config and the other test with some other config for server. Also, reloading of server config needs restart of the mini cluster (as of today). Hence we would need our own setup methods and NeedsOwnMiniClusterTest.. > Automatic build of async index will happen even if mapreduce.framework.name > is not set in any configuration > ----------------------------------------------------------------------------------------------------------- > > Key: PHOENIX-3113 > URL: https://issues.apache.org/jira/browse/PHOENIX-3113 > Project: Phoenix > Issue Type: Bug > Reporter: Ankit Singhal > Assignee: Loknath Priyatham Teja Singamsetty > Priority: Blocker > Fix For: 4.8.0 > > Attachments: phoenix-3113.patch > > > As per below code, we are starting automatic build of async index even if > mapreduce.framework.name is not set in any of the configuration(because > conf.get(QueryServices.MAPRED_FRAMEWORK_NAME) will always return LOCAL as a > default value). > This may cause problem in the hbase cluster where mapreduce is not deployed > or this configuration is not set or included in the classpath. > {code} > String hbaseClusterDistributedMode = > conf.get(QueryServices.HBASE_CLUSTER_DISTRIBUTED_ATTRIB); > String mapredFrameworkName = > conf.get(QueryServices.MAPRED_FRAMEWORK_NAME); > if ((hbaseClusterDistributedMode != null && > !hbaseClusterDistributedMode.equals(HBASE_CLUSTER_DISTRIBUTED_CONFIG)) || > (mapredFrameworkName != null && > !mapredFrameworkName.equals(MAPRED_FRAMEWORK_YARN_CONFIG))) > { > LOG.info("Enabling Async Index rebuilder"); > AsyncIndexRebuilderTask asyncIndexRebuilderTask = new > AsyncIndexRebuilderTask(e.getEnvironment()); > // run async index rebuilder task every 10 secs to rebuild any > newly created async indexes > executor.scheduleAtFixedRate(asyncIndexRebuilderTask, 10000, > rebuildIndexTimeInterval, TimeUnit.MILLISECONDS); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)