HDFS-4138. BackupNode startup fails due to uninitialized edit log. Contributed by Kihwal Lee.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1406743 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Konstantin Shvachko 2012-11-07 18:07:18 +00:00
parent 824fd2d4be
commit 61c432b31e
3 changed files with 6 additions and 17 deletions

View File

@ -1686,6 +1686,9 @@ Release 0.23.5 - UNRELEASED
HDFS-3625. Fix TestBackupNode by properly initializing edit log during
startup. (Junping Du via todd)
HDFS-4138. BackupNode startup fails due to uninitialized edit log.
(Kihwal Lee via shv)
Release 0.23.4 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -77,10 +77,6 @@ public class BackupNode extends NameNode {
String nnHttpAddress;
/** Checkpoint manager */
Checkpointer checkpointManager;
/** ClusterID to which BackupNode belongs to */
String clusterId;
/** Block pool Id of the peer namenode of this BackupNode */
String blockPoolId;
BackupNode(Configuration conf, NamenodeRole role) throws IOException {
super(conf, role);
@ -144,6 +140,7 @@ public class BackupNode extends NameNode {
CommonConfigurationKeys.FS_TRASH_INTERVAL_DEFAULT);
NamespaceInfo nsInfo = handshake(conf);
super.initialize(conf);
namesystem.setBlockPoolId(nsInfo.getBlockPoolID());
if (false == namesystem.isInSafeMode()) {
namesystem.setSafeMode(SafeModeAction.SAFEMODE_ENTER);
@ -153,9 +150,6 @@ public class BackupNode extends NameNode {
// therefore lease hard limit should never expire.
namesystem.leaseManager.setLeasePeriod(
HdfsConstants.LEASE_SOFTLIMIT_PERIOD, Long.MAX_VALUE);
clusterId = nsInfo.getClusterID();
blockPoolId = nsInfo.getBlockPoolID();
// register with the active name-node
registerWith(nsInfo);
@ -209,7 +203,7 @@ public class BackupNode extends NameNode {
}
/* @Override */// NameNode
public boolean setSafeMode(@SuppressWarnings("unused") SafeModeAction action)
public boolean setSafeMode(SafeModeAction action)
throws IOException {
throw new UnsupportedActionException("setSafeMode");
}
@ -405,14 +399,6 @@ public class BackupNode extends NameNode {
return nsInfo;
}
String getBlockPoolId() {
return blockPoolId;
}
String getClusterId() {
return clusterId;
}
@Override
protected NameNodeHAContext createHAContext() {
return new BNHAContext();

View File

@ -3483,7 +3483,7 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
@Metric({"TransactionsSinceLastLogRoll",
"Number of transactions since last edit log roll"})
public long getTransactionsSinceLastLogRoll() {
if (isInStandbyState()) {
if (isInStandbyState() || !getEditLog().isSegmentOpen()) {
return 0;
} else {
return getEditLog().getLastWrittenTxId() -