[ https://issues.apache.org/jira/browse/HDFS-776?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brock Noland updated HDFS-776: ------------------------------ Attachment: HDFS-776.0.patch 1. Fixed 2. Loop is exited on interrupt. 3. Caught, printed, logged, and System.exit. > 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 > Attachments: HDFS-776.0.patch > > > 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. For more information on JIRA, see: http://www.atlassian.com/software/jira