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 525D518498 for ; Mon, 18 May 2015 11:35:05 +0000 (UTC) Received: (qmail 52645 invoked by uid 500); 18 May 2015 11:35:00 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 52591 invoked by uid 500); 18 May 2015 11:35:00 -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 52579 invoked by uid 99); 18 May 2015 11:35:00 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 May 2015 11:35:00 +0000 Date: Mon, 18 May 2015 11:35:00 +0000 (UTC) From: "Aleksandr Maksymenko (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-13705) MultiRowRangeFilter seems to be working incorrect if RowRange.startRowInclusive = false MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-13705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14547892#comment-14547892 ] Aleksandr Maksymenko commented on HBASE-13705: ---------------------------------------------- Unfortunately, I'm busy with my current project, so I don't have a time. Bug seems to be easy to fix, but only if enviroment is already installed, which is not my case. > MultiRowRangeFilter seems to be working incorrect if RowRange.startRowInclusive = false > --------------------------------------------------------------------------------------- > > Key: HBASE-13705 > URL: https://issues.apache.org/jira/browse/HBASE-13705 > Project: HBase > Issue Type: Bug > Affects Versions: 1.1.0 > Reporter: Aleksandr Maksymenko > > I've found the issue during code review, so I don't have tests and I even didn't test this case manualy. So I'll try to describe it in words. > Pre-condition: we're using scan with MultiRowRangeFilter with some RowRange's with startRowInclusive = false. This means that we want to include all rows that are strictly greater than startRow (and less then stopRow, but it doesn't matter for now). > What happens in MultiRowRangeFilter.filterRowKey (worth case is described): > 1. Line 91: Check if current range contains a row. Lets follow the case when it doesn't. > 2. Line 94: Search for the next RowRange in method getNextRangeIndex. > 3. Line 238: We've found a RowRange, check if startRowInclusive == false and set EXCLUSIVE = true. This variable indicates if next row should be excluded. > 4. Line 105: Check if EXCLUSIVE == true, if so skip this row. > The problem: we've skipped first row we got in this range, but we never checked if this row is a RowRange.startRow . In distributed system may not get RowRange.startRow on current instance, so we may exclude some another row. Moreover, we may not have RowRange.startRow at all in the DB, we will exclude some rows that are (possible) close to RowRange.startRow, but not equals to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)