[
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)