[
https://issues.apache.org/jira/browse/HDFS-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Owen O'Malley updated HDFS-776:
-------------------------------
Component/s: Balancer
Description:
The Balancer's AccessKeyUpdater handles exceptions badly. In particular:
1. Catching Exception too low. The wrapper around setKeys should only catch
IOException.
2. InterruptedException is ignored. It should be caught at the top level and
exit run.
3. Throwable is not caught. It should be caught at the top level and kill the
Balancer server process.
{code}
class AccessKeyUpdater implements Runnable {
public void run() {
while (shouldRun) {
try {
accessTokenHandler.setKeys(namenode.getAccessKeys());
} catch (Exception e) {
LOG.error(StringUtils.stringifyException(e));
}
try {
Thread.sleep(keyUpdaterInterval);
} catch (InterruptedException ie) {
}
}
}
}
{code}
was:
The Balancer's AccessKeyUpdater handles exceptions badly. In particular:
1. Catching Exception too low. The wrapper around setKeys should only catch
IOException.
2. InterruptedException is ignored. It should be caught at the top level and
exit run.
3. Throwable is not caught. It should be caught at the top level and kill the
Balancer server process.
{quote}
class AccessKeyUpdater implements Runnable {
public void run() {
while (shouldRun) {
try {
accessTokenHandler.setKeys(namenode.getAccessKeys());
} catch (Exception e) {
LOG.error(StringUtils.stringifyException(e));
}
try {
Thread.sleep(keyUpdaterInterval);
} catch (InterruptedException ie) {
}
}
}
}
{quote}
> Fix exception handling in Balancer
> ----------------------------------
>
> Key: HDFS-776
> URL: https://issues.apache.org/jira/browse/HDFS-776
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: Balancer
> Reporter: Owen O'Malley
> Priority: Critical
> Fix For: 0.21.0
>
>
> The Balancer's AccessKeyUpdater handles exceptions badly. In particular:
> 1. Catching Exception too low. The wrapper around setKeys should only catch
> IOException.
> 2. InterruptedException is ignored. It should be caught at the top level and
> exit run.
> 3. Throwable is not caught. It should be caught at the top level and kill the
> Balancer server process.
> {code}
> class AccessKeyUpdater implements Runnable {
> public void run() {
> while (shouldRun) {
> try {
> accessTokenHandler.setKeys(namenode.getAccessKeys());
> } catch (Exception e) {
> LOG.error(StringUtils.stringifyException(e));
> }
> try {
> Thread.sleep(keyUpdaterInterval);
> } catch (InterruptedException ie) {
> }
> }
> }
> }
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.