You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by mi...@apache.org on 2017/06/27 12:27:51 UTC
[3/6] incubator-impala git commit: IMPALA-5579: Fix
IndexOutOfBoundsException in GetTables metadata request
IMPALA-5579: Fix IndexOutOfBoundsException in GetTables metadata request
Issue:
GetTables metadata request may result in an IndexOutOfBoundsException
while accessing table comments fields if one or more tables can't be
retrieved from the catalog cache.
Fix:
Only add tables that can be retrieved from the catalog cache (i.e. no
TableLoadingException is thrown) in the result of a GetTables request.
Change-Id: Ic933b9950d58e6f880d4078faf1a69ee7c6adbf1
Reviewed-on: http://gerrit.cloudera.org:8080/7296
Reviewed-by: Dimitris Tsirogiannis <dt...@cloudera.com>
Tested-by: Impala Public Jenkins
Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/466808ae
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/466808ae
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/466808ae
Branch: refs/heads/master
Commit: 466808aede88df3bb6b6f8faff39ab5db8103955
Parents: 91dbeb3
Author: Dimitris Tsirogiannis <dt...@cloudera.com>
Authored: Mon Jun 26 11:12:43 2017 -0700
Committer: Impala Public Jenkins <im...@gerrit.cloudera.org>
Committed: Tue Jun 27 02:36:46 2017 +0000
----------------------------------------------------------------------
.../main/java/org/apache/impala/service/MetadataOp.java | 2 +-
.../test/java/org/apache/impala/service/FrontendTest.java | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/466808ae/fe/src/main/java/org/apache/impala/service/MetadataOp.java
----------------------------------------------------------------------
diff --git a/fe/src/main/java/org/apache/impala/service/MetadataOp.java b/fe/src/main/java/org/apache/impala/service/MetadataOp.java
index 3bf7534..6883bac 100644
--- a/fe/src/main/java/org/apache/impala/service/MetadataOp.java
+++ b/fe/src/main/java/org/apache/impala/service/MetadataOp.java
@@ -272,7 +272,6 @@ public class MetadataOp {
List<List<Column>> tablesColumnsList = Lists.newArrayList();
List<String> tableComments = Lists.newArrayList();
for (String tabName: fe.getTableNames(db.getName(), tablePatternMatcher, user)) {
- tableList.add(tabName);
Table table = null;
try {
table = catalog.getTable(db.getName(), tabName);
@@ -291,6 +290,7 @@ public class MetadataOp {
comment = table.getMetaStoreTable().getParameters().get("comment");
columns.addAll(fe.getColumns(table, columnPatternMatcher, user));
}
+ tableList.add(tabName);
tablesColumnsList.add(columns);
tableComments.add(Strings.nullToEmpty(comment));
}
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/466808ae/fe/src/test/java/org/apache/impala/service/FrontendTest.java
----------------------------------------------------------------------
diff --git a/fe/src/test/java/org/apache/impala/service/FrontendTest.java b/fe/src/test/java/org/apache/impala/service/FrontendTest.java
index c3faa0a..d303315 100644
--- a/fe/src/test/java/org/apache/impala/service/FrontendTest.java
+++ b/fe/src/test/java/org/apache/impala/service/FrontendTest.java
@@ -207,6 +207,16 @@ public class FrontendTest extends FrontendTestBase {
assertEquals("", row.colVals.get(4).string_val);
}
}
+
+ // Make sure tables that can't be loaded don't result in errors in the GetTables
+ // request (see IMPALA-5579)
+ req = new TMetadataOpRequest();
+ req.opcode = TMetadataOpcode.GET_TABLES;
+ req.get_tables_req = new TGetTablesReq();
+ req.get_tables_req.setSchemaName("functional");
+ req.get_tables_req.setTableName("hive_index_tbl");
+ resp = execMetadataOp(req);
+ assertEquals(0, resp.rows.size());
}
@Test