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 E12CB200CA8 for ; Thu, 1 Jun 2017 00:42:44 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id DF86C160BDE; Wed, 31 May 2017 22:42:44 +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 33F30160BCB for ; Thu, 1 Jun 2017 00:42:44 +0200 (CEST) Received: (qmail 10909 invoked by uid 500); 31 May 2017 22:42:37 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 10205 invoked by uid 99); 31 May 2017 22:42:37 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 May 2017 22:42:37 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 03DD7F21AC; Wed, 31 May 2017 22:42:37 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: haibochen@apache.org To: common-commits@hadoop.apache.org Date: Wed, 31 May 2017 22:42:58 -0000 Message-Id: In-Reply-To: <8b5febc2d0534e5e85f9cd2d1e8d4bef@git.apache.org> References: <8b5febc2d0534e5e85f9cd2d1e8d4bef@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [23/50] [abbrv] hadoop git commit: HDFS-11879. Fix JN sync interval in case of exception. Contributed by Hanisha Koneru. archived-at: Wed, 31 May 2017 22:42:45 -0000 HDFS-11879. Fix JN sync interval in case of exception. Contributed by Hanisha Koneru. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/11615631 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/11615631 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/11615631 Branch: refs/heads/YARN-1011 Commit: 11615631360ba49c1e9d256ed4f65119d99fd67d Parents: 29b7df9 Author: Arpit Agarwal Authored: Thu May 25 14:01:53 2017 -0700 Committer: Arpit Agarwal Committed: Thu May 25 14:01:53 2017 -0700 ---------------------------------------------------------------------- .../hdfs/qjournal/server/JournalNodeSyncer.java | 40 ++++++++++++-------- 1 file changed, 25 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/11615631/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java index 99bd499..479f6a0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNodeSyncer.java @@ -172,7 +172,6 @@ public class JournalNodeSyncer { } else { syncJournals(); } - Thread.sleep(journalSyncInterval); } catch (Throwable t) { if (!shouldSync) { if (t instanceof InterruptedException) { @@ -194,6 +193,17 @@ public class JournalNodeSyncer { LOG.error( "JournalNodeSyncer daemon received Runtime exception. ", t); } + try { + Thread.sleep(journalSyncInterval); + } catch (InterruptedException e) { + if (!shouldSync) { + LOG.info("Stopping JournalNode Sync."); + } else { + LOG.warn("JournalNodeSyncer interrupted", e); + } + Thread.currentThread().interrupt(); + return; + } } }); syncJournalDaemon.start(); @@ -320,30 +330,30 @@ public class JournalNodeSyncer { List missingEditLogs = Lists.newArrayList(); - int thisJnIndex = 0, otherJnIndex = 0; - int thisJnNumLogs = thisJournalEditLogs.size(); - int otherJnNumLogs = otherJournalEditLogs.size(); + int localJnIndex = 0, remoteJnIndex = 0; + int localJnNumLogs = thisJournalEditLogs.size(); + int remoteJnNumLogs = otherJournalEditLogs.size(); - while (thisJnIndex < thisJnNumLogs && otherJnIndex < otherJnNumLogs) { - long localJNstartTxId = thisJournalEditLogs.get(thisJnIndex) + while (localJnIndex < localJnNumLogs && remoteJnIndex < remoteJnNumLogs) { + long localJNstartTxId = thisJournalEditLogs.get(localJnIndex) .getStartTxId(); - long remoteJNstartTxId = otherJournalEditLogs.get(otherJnIndex) + long remoteJNstartTxId = otherJournalEditLogs.get(remoteJnIndex) .getStartTxId(); if (localJNstartTxId == remoteJNstartTxId) { - thisJnIndex++; - otherJnIndex++; + localJnIndex++; + remoteJnIndex++; } else if (localJNstartTxId > remoteJNstartTxId) { - missingEditLogs.add(otherJournalEditLogs.get(otherJnIndex)); - otherJnIndex++; + missingEditLogs.add(otherJournalEditLogs.get(remoteJnIndex)); + remoteJnIndex++; } else { - thisJnIndex++; + localJnIndex++; } } - if (otherJnIndex < otherJnNumLogs) { - for (; otherJnIndex < otherJnNumLogs; otherJnIndex++) { - missingEditLogs.add(otherJournalEditLogs.get(otherJnIndex)); + if (remoteJnIndex < remoteJnNumLogs) { + for (; remoteJnIndex < remoteJnNumLogs; remoteJnIndex++) { + missingEditLogs.add(otherJournalEditLogs.get(remoteJnIndex)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org