[ 
https://issues.apache.org/jira/browse/PHOENIX-5046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vincent Poon resolved PHOENIX-5046.
-----------------------------------
    Resolution: Not A Problem

Nevermind, after looking more closely with [~tdsilva], the rowlock is happening 
correctly.

> Race condition in disabling an index can cause an index to get out of sync
> --------------------------------------------------------------------------
>
>                 Key: PHOENIX-5046
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5046
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.14.1
>            Reporter: Vincent Poon
>            Priority: Major
>
> Assume a row R at T0.
> If two index updates for R at T1 and T2 fail, the index might get marked 
> disabled as of T2 due to a race condition.  The partial rebuilder will will 
> then rebuild as of T2.  Since T1 was never replayed, the index row at T0 is 
> not deleted, leaving an extra orphan row in the index.
> This is because In MetaDataEndpointImpl#updateIndexState , we update the 
> index state without any rowlocking, so even though we take the min of the new 
> disable timestamp and the current disable timestamp, two concurrent requests 
> can be in a race condition and succeed in disabling the index with different 
> timestamps.



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

Reply via email to