Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4CAF1200C7F for ; Wed, 24 May 2017 15:41:11 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 4B7F5160B9C; Wed, 24 May 2017 13:41:11 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9A221160BB4 for ; Wed, 24 May 2017 15:41:10 +0200 (CEST) Received: (qmail 77682 invoked by uid 500); 24 May 2017 13:41:09 -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 77667 invoked by uid 99); 24 May 2017 13:41:09 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 24 May 2017 13:41:09 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id DAB0E18DA91 for ; Wed, 24 May 2017 13:41:08 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.502 X-Spam-Level: X-Spam-Status: No, score=-99.502 tagged_above=-999 required=6.31 tests=[KAM_NUMSUBJECT=0.5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 1kBpdQc2heCR for ; Wed, 24 May 2017 13:41:07 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 43C255FCD2 for ; Wed, 24 May 2017 13:41:06 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 59493E0C0F for ; Wed, 24 May 2017 13:41:05 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 8CCB621D62 for ; Wed, 24 May 2017 13:41:04 +0000 (UTC) Date: Wed, 24 May 2017 13:41:04 +0000 (UTC) From: "Duo Zhang (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-18042) Client Compatibility breaks between versions 1.2 and 1.3 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Wed, 24 May 2017 13:41:11 -0000 [ https://issues.apache.org/jira/browse/HBASE-18042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16022903#comment-16022903 ] Duo Zhang commented on HBASE-18042: ----------------------------------- OK, finally I found that this is a bug, not by design... If numberOfRows is zero, we will bypass the actual scan call(the private one in RSRpcServices) so the moreResultsInRegion flag will not be set. But at the end of the public scan method, we will test builder.getMoreResultsInRegion, if it returns false then we will close the scanner. So the problem is, for old client, we will set numberOfRows to 0 when opening a scanner, and the RS will close the scanner immediately... Will prepare a patch soon and also add a UT to cover this. > Client Compatibility breaks between versions 1.2 and 1.3 > -------------------------------------------------------- > > Key: HBASE-18042 > URL: https://issues.apache.org/jira/browse/HBASE-18042 > Project: HBase > Issue Type: Bug > Components: regionserver, scan > Affects Versions: 2.0.0, 1.4.0, 1.3.1 > Reporter: Karan Mehta > Assignee: Duo Zhang > Priority: Critical > Fix For: 2.0.0, 1.4.0, 1.3.2 > > Attachments: HBASE-18042-branch-1.patch, HBASE-18042-branch-1.patch, HBASE-18042.patch, HBASE-18042-v1.patch > > > OpenTSDB uses AsyncHBase as its client, rather than using the traditional HBase Client. From version 1.2 to 1.3, the {{ClientProtos}} have been changed. Newer fields are added to {{ScanResponse}} proto. > For a typical Scan request in 1.2, would require caller to make an OpenScanner Request, GetNextRows Request and a CloseScanner Request, based on {{more_rows}} boolean field in the {{ScanResponse}} proto. > However, from 1.3, new parameter {{more_results_in_region}} was added, which limits the results per region. Therefore the client has to now manage sending all the requests for each region. Further more, if the results are exhausted from a particular region, the {{ScanResponse}} will set {{more_results_in_region}} to false, but {{more_results}} can still be true. Whenever the former is set to false, the {{RegionScanner}} will also be closed. > OpenTSDB makes an OpenScanner Request and receives all its results in the first {{ScanResponse}} itself, thus creating a condition as described in above paragraph. Since {{more_rows}} is true, it will proceed to send next request at which point the {{RSRpcServices}} will throw {{UnknownScannerException}}. The protobuf client compatibility is maintained but expected behavior is modified. -- This message was sent by Atlassian JIRA (v6.3.15#6346)