ChinmaySKulkarni commented on a change in pull request #550: PHOENIX-5348: Fix
flaky test: testIndexRebuildTask
URL: https://github.com/apache/phoenix/pull/550#discussion_r307522949
##########
File path:
phoenix-core/src/it/java/org/apache/phoenix/end2end/IndexRebuildTaskIT.java
##########
@@ -129,43 +128,48 @@ public void testIndexRebuildTask() throws Throwable {
Task.addTask(conn.unwrap(PhoenixConnection.class),
PTable.TaskType.INDEX_REBUILD,
TENANT1, null, viewName,
PTable.TaskStatus.CREATED.toString(), data, null, startTs,
null, true);
-
-
task.run();
+ waitForTaskState(conn, PTable.TaskType.INDEX_REBUILD, viewName,
PTable.TaskStatus.COMPLETED);
String viewIndexTableName =
MetaDataUtil.getViewIndexPhysicalName(baseTable);
ConnectionQueryServices queryServices =
conn.unwrap(PhoenixConnection.class).getQueryServices();
int count =
getUtility().countRows(queryServices.getTable(Bytes.toBytes(viewIndexTableName)));
assertTrue(count == numOfValues);
-
// Remove index contents and try again
Admin admin = queryServices.getAdmin();
TableName tableName = TableName.valueOf(viewIndexTableName);
admin.disableTable(tableName);
- admin.truncateTable(tableName, false);
+ admin.truncateTable(tableName, true);
data = "{IndexName:" + indexName + ", DisableBefore:true}";
- // Add a new task (update status to created) to System.Task to
rebuild indexes
+ // Add a new task to System.Task to rebuild indexes
+ conn.createStatement().execute("DELETE " + " FROM " +
PhoenixDatabaseMetaData.SYSTEM_TASK_NAME
+ + " WHERE TABLE_NAME ='" + viewName + "'");
+ conn.commit();
+ Thread.sleep(1);
Review comment:
Instead of sleeping without checking, perhaps query SYSTEM.TASK to check
that the tasks for that `viewName` have been successfully deleted, in a loop
bounded by some number of retries. Then continue if all tasks have been
deleted. If some tasks still remain even after said number of retries, we can
perhaps fail the test since I believe this would eventually fail the test
anyways due to the leftover tasks for that `viewName`, right?
----------------------------------------------------------------
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