You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Vincent Poon (JIRA)" <ji...@apache.org> on 2018/11/27 23:10:00 UTC

[jira] [Resolved] (PHOENIX-5046) Race condition in disabling an index can cause an index to get out of sync

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