[ https://issues.apache.org/jira/browse/PHOENIX-5708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kadir OZDEMIR updated PHOENIX-5708: ----------------------------------- Attachment: PHOENIX-5708.4.x-HBase-1.5.001.patch > 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 > > Attachments: PHOENIX-5708.4.x-HBase-1.5.001.patch, > PHOENIX-5708.master.001.patch, PHOENIX-5708.master.002.patch > > Time Spent: 10m > 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)