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:
parent
5c46ba4d48
commit
52004aa8e9
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue