Yerui Sun created HBASE-14497:
---------------------------------

             Summary: Reverse Scan threw StackOverflow caused by readPt checking
                 Key: HBASE-14497
                 URL: https://issues.apache.org/jira/browse/HBASE-14497
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.98.14, 2.0.0, 1.3.0
            Reporter: Yerui Sun


I met stack overflow error in StoreFileScanner.seekToPreviousRow using reversed 
scan. I searched and founded HBASE-14155, but it seems to be a different reason.

The seekToPreviousRow will fetch the row which closest before, and compare mvcc 
to the readPt, which acquired when scanner created. If the row's mvcc is bigger 
than readPt, an recursive call of seekToPreviousRow will invoked, to find the 
next closest before row.

Considering we created a scanner for reversed scan, and some data with smaller 
rows was written and flushed, before calling scanner next. When 
seekToPreviousRow was invoked, it would call itself recursively, until all rows 
which written after scanner created were iterated. The depth of recursive 
calling stack depends on the count of rows, the stack overflow error will be 
threw if the count of rows is large, like 10000.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to