[ 
https://issues.apache.org/jira/browse/PHOENIX-5080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16754254#comment-16754254
 ] 

Vincent Poon commented on PHOENIX-5080:
---------------------------------------

[~mihir6692]  I think it would be more ideal if we could use 
EnvironmentEdgeManager.injectEdge() to insert our own clock, so we have more 
control and so the test doesn't wait any more than necessary.  See 
ConcurrentMutationsIT for examples.

Also, instead of having a rebuildOnce static variable, it would be cleaner to 
have runIndexRebuilderAsync return a Future that you check for completion.

However I will say that your test does seem to follow the existing pattern in 
that class.  If you think it's overly burdensome to convert your test, we can 
commit this first and create another work item to clean up this test class.

> Index becomes Active during Partial Index Rebuilder if Index Failure happens
> ----------------------------------------------------------------------------
>
>                 Key: PHOENIX-5080
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5080
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.1
>            Reporter: Monani Mihir
>            Assignee: Monani Mihir
>            Priority: Blocker
>         Attachments: PHOENIX-5080-4.x-HBase-1.3.01.patch, 
> PHOENIX-5080-4.x-HBase-1.3.02.patch, PHOENIX-5080-4.x-HBase-1.3.02.patch, 
> PHOENIX-5080-4.x-HBase-1.3.03.patch, PHOENIX-5080-4.x-HBase-1.3.04.patch
>
>
> After PHOENIX-4130 and PHOENIX-4600 , If there is Index failure during 
> Partial Index Rebuild, Rebuilder will try again to write Index updates. If it 
> succeeds then it will transition Index from INACTIVE to ACTIVE, even before 
> Rebuilder finishes.
> Here is where it goes wrong, I think :- 
> {code:java}
> PhoenixIndexFailurePolicy.java :- 
> public static void doBatchWithRetries(MutateCommand mutateCommand,
>             IndexWriteException iwe, PhoenixConnection connection, 
> ReadOnlyProps config) throws IOException {
> ....
>     while (canRetryMore(numRetry++, maxTries, canRetryUntil)) {
>     ...
>         handleIndexWriteSuccessFromClient(iwe, connection);
>     ...
>     }
> }
> ....
> private static void handleIndexWriteSuccessFromClient(IndexWriteException 
> indexWriteException, PhoenixConnection conn) {
>         handleExceptionFromClient(indexWriteException, conn, 
> PIndexState.ACTIVE);
> }
> {code}
>  
>  
>  



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

Reply via email to