Monani Mihir created PHOENIX-5079:
-------------------------------------

             Summary: PhoenixIndexMetaData.isIndexRebuild gives wrong results 
in Partial Index Rebuilding
                 Key: PHOENIX-5079
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5079
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.14.1
            Reporter: Monani Mihir


During Partial Rebuild, If rebuilder get index failure (because of region 
move/split etc), it will call PhoenixIndexFailurePolicy.handleFailure . Here it 
checks if mutations are part of Index Rebuild or not . 


{code:java}
if (!throwing) {

                SQLException sqlException =

                        new 
SQLExceptionInfo.Builder(SQLExceptionCode.INDEX_WRITE_FAILURE)

                                
.setRootCause(cause).setMessage(cause.getLocalizedMessage()).build()

                                .buildException();

                IOException ioException = 
ServerUtil.wrapInDoNotRetryIOException(null, sqlException, timestamp);

            Mutation m = attempted.entries().iterator().next().getValue();

            boolean isIndexRebuild = 
PhoenixIndexMetaData.isIndexRebuild(m.getAttributesMap());

            // Always throw if rebuilding index since the rebuilder needs to 
know if it was successful

            if (throwIndexWriteFailure || isIndexRebuild) {

            throw ioException;

            } else {

                    LOG.warn("Swallowing index write failure", ioException);

            }

            }
{code}
Here isIndexRebuild becomes falls even though we have set attribute for 
REPLY_WRITE to 

REPLAY_ONLY_INDEX_WRITES  in UngroupedAggregateRegionObserver.rebuildIndices 
{code:java}
...
put.setAttribute(REPLAY_WRITES, REPLAY_ONLY_INDEX_WRITES);
...{code}
 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to