Author: shv
Date: Wed Nov 7 17:45:01 2012
New Revision: 1406734
URL: http://svn.apache.org/viewvc?rev=1406734&view=rev
Log:
HDFS-4138. BackupNode startup fails due to uninitialized edit log. Contributed
by Kihwal Lee.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BackupNode.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1406734&r1=1406733&r2=1406734&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Nov 7
17:45:01 2012
@@ -1966,6 +1966,9 @@ Release 0.23.5 - UNRELEASED
HDFS-4090. getFileChecksum() result incompatible when called against
zero-byte files. (Kihwal Lee via daryn)
+ HDFS-4138. BackupNode startup fails due to uninitialized edit log.
+ (Kihwal Lee via shv)
+
Release 0.23.4 - UNRELEASED
INCOMPATIBLE CHANGES
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BackupNode.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BackupNode.java?rev=1406734&r1=1406733&r2=1406734&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BackupNode.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BackupNode.java
Wed Nov 7 17:45:01 2012
@@ -78,10 +78,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);
@@ -145,6 +141,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);
@@ -154,9 +151,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);
@@ -219,7 +213,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");
}
@@ -415,14 +409,6 @@ public class BackupNode extends NameNode
return nsInfo;
}
- String getBlockPoolId() {
- return blockPoolId;
- }
-
- String getClusterId() {
- return clusterId;
- }
-
@Override
protected NameNodeHAContext createHAContext() {
return new BNHAContext();
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1406734&r1=1406733&r2=1406734&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Wed Nov 7 17:45:01 2012
@@ -3507,7 +3507,7 @@ public class FSNamesystem implements Nam
@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() -