Minwoo Kang created HBASE-29254: ----------------------------------- Summary: StoreScanner returns incorrect row after flush due to topChanged behavior Key: HBASE-29254 URL: https://issues.apache.org/jira/browse/HBASE-29254 Project: HBase Issue Type: Bug Components: Scanners Reporter: Minwoo Kang Assignee: Minwoo Kang
{color:#000000}For example, suppose the HStore contains the following cells:{color} {color:#000000}(1) row1/family:qf1/ts + 2/DeleteColumn/vlen=0/seqid=102/{color} {color:#000000}(2) row1/family:qf1/ts + 1/Put/vlen=6/seqid=101/value2{color} {color:#000000}(3) row1/family:qf2/ts + 2/DeleteColumn/vlen=0/seqid=102/{color} {color:#000000}(4) row1/family:qf2/ts + 1/Put/vlen=6/seqid=101/value2{color} {color:#000000}(5) row1/family:qf3/ts + 2/DeleteColumn/vlen=0/seqid=102/{color} {color:#000000}(6) row1/family:qf3/ts + 1/Put/vlen=6/seqid=101/value2{color} {color:#000000}(7) row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1{color} {color:#000000}(8) row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1{color} {color:#000000}(9) row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1{color} {color:#000000}The response from StoreScanner.next(result) should be:{color} {color:#000000}*1. First result:*{color} {color:#000000}empty{color} *{color:#000000}2. Second result:{color}* - row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1 - row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1 - row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1 {color:#000000}However, if a flush occurs after reading up to (6), a topChanged is triggered, and the response from `StoreScanner.next(result)` becomes:{color} {color:#000000}*1. First result:*{color} - row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1 - row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1 - row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1 *{color:#000000}2. Second result:{color}* empty The first result is supposed to return data for `row1`, but it ends up including `row2`, which results in the response being split incorrectly across user responses. -- This message was sent by Atlassian Jira (v8.20.10#820010)