Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A8C0A17BCA for ; Sun, 27 Sep 2015 11:18:04 +0000 (UTC) Received: (qmail 53639 invoked by uid 500); 27 Sep 2015 11:18:04 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 53582 invoked by uid 500); 27 Sep 2015 11:18:04 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 53569 invoked by uid 99); 27 Sep 2015 11:18:04 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Sep 2015 11:18:04 +0000 Date: Sun, 27 Sep 2015 11:18:04 +0000 (UTC) From: "Yerui Sun (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (HBASE-14497) Reverse Scan threw StackOverflow caused by readPt checking MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 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)