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 3E7ED18BFD for ; Fri, 13 Nov 2015 21:48:11 +0000 (UTC) Received: (qmail 68799 invoked by uid 500); 13 Nov 2015 21:48:11 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 68748 invoked by uid 500); 13 Nov 2015 21:48:11 -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 68728 invoked by uid 99); 13 Nov 2015 21:48:11 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Nov 2015 21:48:11 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id EBC922C1F58 for ; Fri, 13 Nov 2015 21:48:10 +0000 (UTC) Date: Fri, 13 Nov 2015 21:48:10 +0000 (UTC) From: "Andrew Purtell (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HBASE-14811) HBaseInterClusterReplicationEndpoint retry logic is broken 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-14811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-14811: ----------------------------------- Affects Version/s: 1.0.2 0.98.16 > HBaseInterClusterReplicationEndpoint retry logic is broken > ---------------------------------------------------------- > > Key: HBASE-14811 > URL: https://issues.apache.org/jira/browse/HBASE-14811 > Project: HBase > Issue Type: Bug > Components: Replication > Affects Versions: 2.0.0, 1.0.2, 1.2.0, 1.2.1, 0.98.16 > Reporter: Ashu Pachauri > Assignee: Ashu Pachauri > Priority: Critical > > In HBaseInterClusterReplicationEndpoint, we do something like this: > {code} > entryLists.remove(f.get()); > {code} > where f.get() returns an ordinal number which represents the index of the element in the entryLists that just succeeded replicating. We remove these entries because we want to retry with remaining elements in the list in case of a failure. Since entryLists is an ArrayList, the subsequent elements are shifted left in case we remove an element. This breaks the intended functionality. The fix is to reverse sort the ordinals and then perform the deletion in one go. -- This message was sent by Atlassian JIRA (v6.3.4#6332)