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

Reply via email to