You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2019/02/11 23:10:00 UTC

[jira] [Reopened] (PHOENIX-4940) IndexTool should be able to rebuild tenant-owned indexes

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

Josh Elser reopened PHOENIX-4940:
---------------------------------

Pretty sure this change is the culprit causing IndexToolIT to fail:
{noformat}
2019-02-08 23:42:13,882 ERROR [main] org.apache.phoenix.mapreduce.index.IndexTool(628): An exception occurred while performing the indexing job: NullPointerException:  at:
java.lang.NullPointerException
	at org.apache.commons.cli.DefaultParser.handleToken(DefaultParser.java:237)
	at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:120)
	at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:76)
	at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:60)
	at org.apache.phoenix.mapreduce.index.IndexTool.parseOptions(IndexTool.java:189)
	at org.apache.phoenix.mapreduce.index.IndexTool.run(IndexTool.java:534)
	at org.apache.phoenix.end2end.IndexToolIT.runIndexTool(IndexToolIT.java:512)
	at org.apache.phoenix.end2end.IndexToolIT.runIndexTool(IndexToolIT.java:498)
	at org.apache.phoenix.end2end.IndexToolIT.testSplitIndex(IndexToolIT.java:424){noformat}
The change:
{noformat}
             // run with 50% sampling rate, split if data table more than 3 regions
-            runIndexTool(directApi, useSnapshot, schemaName, dataTableName, indexTableName, "-sp", "50", "-spa", "3");
+            runIndexTool(directApi, useSnapshot, schemaName, dataTableName, indexTableName, null,"-sp", "50", "-spa", "3");{noformat}
adds a null into {{additionalArgs}} which causes the commandline parser to break.

Let me put up an addendum to fix this.

> IndexTool should be able to rebuild tenant-owned indexes
> --------------------------------------------------------
>
>                 Key: PHOENIX-4940
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4940
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 4.14.0, 5.0.0
>            Reporter: Geoffrey Jacoby
>            Assignee: Gokcen Iskender
>            Priority: Major
>             Fix For: 4.15.0, 5.1
>
>         Attachments: PHOENIX-4940-4.x.patch, PHOENIX-4940-addendum.patch
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> IndexTool uses global connections to lookup the indexes which it's asked to rebuild, which means that it won't be able to see indexes owned by tenant views. We should add an optional tenantId parameter to it that will use a tenant connection (and potentially our MapReduce framework's tenant connection support) to allow for rebuilding those indexes as well. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)