Github user JamesRTaylor commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/290#discussion_r164180172
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
---
@@ -379,6 +388,12 @@ public void run() {
} else if (indexState == PIndexState.PENDING_ACTIVE) {
IndexUtil.updateIndexState(conn,
indexTableFullName, PIndexState.ACTIVE, null);
continue; // Must wait until clients start to do
index maintenance again
+ } else if (indexState == PIndexState.PENDING_DISABLE) {
+ if (elapsedSinceDisable > pendingDisableThreshold)
{
+ // too long in PENDING_DISABLE - client didn't
disable the index, so we do it here
+ IndexUtil.updateIndexState(conn,
indexTableFullName, PIndexState.DISABLE, null);
--- End diff --
This will put the index into a permanently disabled state requiring manual
intervention. I think we should not pass in null for the indexDisableTimestamp
here, but pass in the current value instead. That'll cause the index to be
partially rebuilt (as long as it's not older that the threshold to permanently
disable it).
---