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.
---