Github user twdsilva commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/313#discussion_r206687937
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ---
@@ -2957,6 +3010,11 @@ MutationState dropTable(String schemaName, String
tableName, String parentTableN
Delete linkDelete = new Delete(linkKey, clientTimeStamp);
tableMetaData.add(linkDelete);
}
+ if (tableType == PTableType.TABLE) {
+ // acquire a mutex on the table to prevent creating views
while concurrently
+ // dropping the base table
+ acquiredMutex = writeCell(null, schemaName, tableName,
null);
--- End diff --
Yes, I missed that. I originally had writeCell throw the
ConcurrentTableMutationException, but we need to know we need writeCell to
return false if it wasn't able to do the checkAndPut so that we can set the
acquiredMutex boolean which is later used to determine if we have to delete the
cell in the finally block.
---