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

Monani Mihir commented on PHOENIX-5080:
---------------------------------------

[~vincentpoon] Yes, I need it for this test cases specifically. When we use 
MyClock we stop using system clock and we have to advance time ourself, 
something like "clock.time += 1" .

So when i run mutateRandomly in test case , i do UPSERT->DELETE->UPSERT and for 
all the actions performed in mutateRanomly, timestamp will be same and UPSERT 
will be masked under DELETE marker as all opertions have same timestamp. 

To avoid above situation, i am using "setAdvance" and "shouldAdvance" , so 
whenever any action use EnvironmentEdgeManager.currentTimeMillis() , it will 
actually call MyClock.currentTime() (Because we are doing 
"EnvironmentEdgeManager.injectEdge(clock) " at start of test case ) and time 
will be increased by 1 as per function definition. 

> 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, 
> PHOENIX-5080-4.x-HBase-1.3.05.patch, PHOENIX-5080.01.patch, 
> PHOENIX-5080.01.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