gokceni commented on a change in pull request #705: PHOENIX-5723
PhoenixIndexImportDirectReducer cleanup method updates i…
URL: https://github.com/apache/phoenix/pull/705#discussion_r379084189
##########
File path:
phoenix-core/src/it/java/org/apache/phoenix/end2end/IndexExtendedIT.java
##########
@@ -314,4 +315,48 @@ public void testBuildDisabledIndex() throws Exception {
conn.close();
}
}
+
+ @Test
+ public void testIndexStateOnException() throws Exception {
+ if (localIndex || useSnapshot || useViewIndex) {
+ return;
+ }
+
+ String schemaName = generateUniqueName();
+ String dataTableName = generateUniqueName();
+ String dataTableFullName = SchemaUtil.getTableName(schemaName,
dataTableName);
+ String indexTableName = generateUniqueName();
+ String indexFullName = SchemaUtil.getTableName(schemaName,
indexTableName);
+ Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
+ try (Connection conn = DriverManager.getConnection(getUrl(), props)){
+ Statement stmt = conn.createStatement();
+ stmt.execute(String.format(
+ "CREATE TABLE %s (ID INTEGER NOT NULL PRIMARY KEY, NAME
VARCHAR, ZIP INTEGER) %s",
+ dataTableFullName, tableDDLOptions));
+
+ stmt.execute(String.format(
+ "UPSERT INTO %s VALUES(1, 'Phoenix', 12345)",
dataTableFullName));
+
+ conn.commit();
+
+ // Configure IndexRegionObserver to fail the first write phase.
This should not
+ // lead to any change on index and thus index verify during index
rebuild should fail
+ IndexRegionObserver.setIgnoreIndexRebuildForTesting(true);
+ stmt.execute(String.format(
+ "CREATE INDEX %s ON %s (NAME) INCLUDE (ZIP) ASYNC",
+ indexTableName, dataTableFullName));
+
+ // Verify that the index table is not in the ACTIVE state
+ assertFalse(checkIndexState(conn, indexFullName,
PIndexState.ACTIVE, 0L));
+
+ // Run the index MR job and verify that the index table rebuild
fails
+ IndexToolIT.runIndexTool(true, false, schemaName, dataTableName,
+ indexTableName, null, -1, IndexTool.IndexVerifyType.AFTER);
+
+ IndexRegionObserver.setIgnoreIndexRebuildForTesting(false);
+
+ // job failed, verify that the index table is still not in the
ACTIVE state
+ assertFalse(checkIndexState(conn, indexFullName,
PIndexState.ACTIVE, 0L));
Review comment:
Is there a test to verify it goes into Active state in the sunny case?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services