From 259a78120bd0c6736185f2ffbfdde40f5ecd5651 Mon Sep 17 00:00:00 2001 From: Chris Nauroth Date: Tue, 5 Nov 2013 06:06:54 +0000 Subject: [PATCH] HDFS-5456. Merging change r1538872 from trunk to branch-2. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1538873 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../server/namenode/startupprogress/StartupProgress.java | 2 +- .../namenode/startupprogress/TestStartupProgress.java | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index da39fa5c1d0..dcaa108341c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -221,6 +221,9 @@ Release 2.2.1 - UNRELEASED HDFS-5035. getFileLinkStatus and rename do not correctly check permissions of symlinks. (Andrew Wang via Colin Patrick McCabe) + HDFS-5456. NameNode startup progress creates new steps if caller attempts to + create a counter for a step that doesn't already exist. (cnauroth) + Release 2.2.0 - 2013-10-13 INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/StartupProgress.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/StartupProgress.java index f242bc57119..33d1e220424 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/StartupProgress.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/StartupProgress.java @@ -149,8 +149,8 @@ public class StartupProgress { * @return Counter associated with phase and step */ public Counter getCounter(Phase phase, Step step) { - final StepTracking tracking = lazyInitStep(phase, step); if (!isComplete()) { + final StepTracking tracking = lazyInitStep(phase, step); return new Counter() { @Override public void increment() { diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/TestStartupProgress.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/TestStartupProgress.java index 6172be68b74..db778a3dafb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/TestStartupProgress.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/startupprogress/TestStartupProgress.java @@ -179,6 +179,14 @@ public class TestStartupProgress { startupProgress.endStep(LOADING_FSIMAGE, step); startupProgress.endPhase(LOADING_FSIMAGE); + // Also attempt a whole new step that wasn't used last time. + startupProgress.beginPhase(LOADING_EDITS); + Step newStep = new Step("file1"); + startupProgress.beginStep(LOADING_EDITS, newStep); + incrementCounter(startupProgress, LOADING_EDITS, newStep, 100L); + startupProgress.endStep(LOADING_EDITS, newStep); + startupProgress.endPhase(LOADING_EDITS); + StartupProgressView after = startupProgress.createView(); // Expect that data was frozen after completion of entire startup process, so @@ -200,6 +208,7 @@ public class TestStartupProgress { after.getTotal(LOADING_FSIMAGE)); assertEquals(before.getTotal(LOADING_FSIMAGE, step), after.getTotal(LOADING_FSIMAGE, step)); + assertFalse(after.getSteps(LOADING_EDITS).iterator().hasNext()); } @Test(timeout=10000)