HDFS-776. Fix exception handling in Balancer. Contributed by Uma Maheswara Rao G

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1243654 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Tsz-wo Sze 2012-02-13 19:07:04 +00:00
parent 5c46ba4d48
commit 52004aa8e9
3 changed files with 19 additions and 10 deletions

View File

@ -232,6 +232,9 @@ Release 0.23.2 - UNRELEASED
HDFS-2869. Fix an error in the webhdfs docs for the mkdir op (harsh) HDFS-2869. Fix an error in the webhdfs docs for the mkdir op (harsh)
HDFS-776. Fix exception handling in Balancer. (Uma Maheswara Rao G
via szetszwo)
Release 0.23.1 - 2012-02-08 Release 0.23.1 - 2012-02-08
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -125,6 +125,10 @@ class NameNodeConnector {
if (!isBlockTokenEnabled) { if (!isBlockTokenEnabled) {
return BlockTokenSecretManager.DUMMY_TOKEN; return BlockTokenSecretManager.DUMMY_TOKEN;
} else { } else {
if (!shouldRun) {
throw new IOException(
"Can not get access token. BlockKeyUpdater is not running");
}
return blockTokenSecretManager.generateToken(null, eb, return blockTokenSecretManager.generateToken(null, eb,
EnumSet.of(BlockTokenSecretManager.AccessMode.REPLACE, EnumSet.of(BlockTokenSecretManager.AccessMode.REPLACE,
BlockTokenSecretManager.AccessMode.COPY)); BlockTokenSecretManager.AccessMode.COPY));
@ -221,16 +225,20 @@ class NameNodeConnector {
*/ */
class BlockKeyUpdater implements Runnable { class BlockKeyUpdater implements Runnable {
public void run() { public void run() {
try {
while (shouldRun) { while (shouldRun) {
try { try {
blockTokenSecretManager.setKeys(namenode.getBlockKeys()); blockTokenSecretManager.setKeys(namenode.getBlockKeys());
} catch (Exception e) { } catch (IOException e) {
LOG.error("Failed to set keys", e); LOG.error("Failed to set keys", e);
} }
try {
Thread.sleep(keyUpdaterInterval); Thread.sleep(keyUpdaterInterval);
} catch (InterruptedException ie) {
} }
} catch (InterruptedException e) {
LOG.info("InterruptedException in block key updater thread", e);
} catch (Throwable e) {
LOG.error("Exception in block key updater thread", e);
shouldRun = false;
} }
} }
} }

View File

@ -57,14 +57,12 @@ public class TestBalancerWithMultipleNameNodes {
((Log4JLogger)NameNode.stateChangeLog).getLogger().setLevel(Level.OFF); ((Log4JLogger)NameNode.stateChangeLog).getLogger().setLevel(Level.OFF);
((Log4JLogger)LeaseManager.LOG).getLogger().setLevel(Level.OFF); ((Log4JLogger)LeaseManager.LOG).getLogger().setLevel(Level.OFF);
((Log4JLogger)LogFactory.getLog(FSNamesystem.class)).getLogger().setLevel(Level.OFF); ((Log4JLogger)LogFactory.getLog(FSNamesystem.class)).getLogger().setLevel(Level.OFF);
// ((Log4JLogger)DataNode.LOG).getLogger().setLevel(Level.OFF);
} }
private static final long CAPACITY = 500L; private static final long CAPACITY = 500L;
private static final String RACK0 = "/rack0"; private static final String RACK0 = "/rack0";
private static final String RACK1 = "/rack1"; private static final String RACK1 = "/rack1";
private static final String RACK2 = "/rack2";
private static final String FILE_NAME = "/tmp.txt"; private static final String FILE_NAME = "/tmp.txt";
private static final Path FILE_PATH = new Path(FILE_NAME); private static final Path FILE_PATH = new Path(FILE_NAME);