HDFS-5456. NameNode startup progress creates new steps if caller attempts to create a counter for a step that doesn't already exist. Contributed by Chris Nauroth.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1538872 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d12010e658
commit
c47b3d7502
|
@ -579,6 +579,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
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue