[
https://issues.apache.org/jira/browse/PHOENIX-5708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viraj Jasani updated PHOENIX-5708:
----------------------------------
Fix Version/s: 4.16.0
> GlobalIndexChecker returns unverified index row cells
> -----------------------------------------------------
>
> Key: PHOENIX-5708
> URL: https://issues.apache.org/jira/browse/PHOENIX-5708
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 5.0.0, 4.14.3
> Reporter: Kadir OZDEMIR
> Priority: Major
> Fix For: 4.15.0, 5.1.0, 4.16.0
>
> Attachments: PHOENIX-5708.4.x-HBase-1.5.001.patch,
> PHOENIX-5708.master.001.patch, PHOENIX-5708.master.002.patch
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In the current implementation, unverified index row cells can be visible to
> clients. One scenario where this can happen is as follows. A client attempts
> to write a full data row but the data row write fails. This leaves an
> unverified index row corresponding to this data row. Later, the client
> attempts to write to the same row but this time it writes a partial data row
> such that one of the covered columns does not have a value in this partial
> write. After this, there will be two versions of the index row, the first one
> is unverified and the second one is verified. When the client reads the row
> back from the index table, since HBase will merge two versions of this index
> row, the client will get some cells from the unverified index row such that
> these cells are not in the verified index row. This is a bug. The fix is very
> simple. In GlobalIndexChecker, we need to remove the cells from the previous
> versions of the row. Please note that every index row is composed of cells
> with the same timestamp by design. By implementing this fix, we will ensure
> that this property always holds.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)