[ https://issues.apache.org/jira/browse/HBASE-14497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14949205#comment-14949205 ]
Hudson commented on HBASE-14497: -------------------------------- FAILURE: Integrated in HBase-0.98-on-Hadoop-1.1 #1099 (See [https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/1099/]) HBASE-14497 Reverse Scan threw StackOverflow caused by readPt checking (tedyu: rev 710161baf0094e57241a477cc45291f25d9781ff) * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStore.java > 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: 2.0.0, 0.98.14, 1.3.0 > Reporter: Yerui Sun > Assignee: Yerui Sun > Fix For: 2.0.0, 1.3.0, 0.98.16 > > Attachments: 14497-branch-1-v6.patch, 14497-master-v6.patch, > HBASE-14497-0.98-v6.patch, HBASE-14497-0.98.patch, > HBASE-14497-branch-1-v2.patch, HBASE-14497-branch-1-v3.patch, > HBASE-14497-branch-1-v6.patch, HBASE-14497-branch-1.patch, > HBASE-14497-master-v2.patch, HBASE-14497-master-v3.patch, > HBASE-14497-master-v3.patch, HBASE-14497-master-v4.patch, > HBASE-14497-master-v5.patch, HBASE-14497-master.patch > > > 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)