Ding Yuan created HDFS-5822:
-------------------------------
Summary: InterruptedException to thread sleep ignored
Key: HDFS-5822
URL: https://issues.apache.org/jira/browse/HDFS-5822
Project: Hadoop HDFS
Issue Type: Bug
Components: datanode
Affects Versions: 2.2.0
Reporter: Ding Yuan
In org/apache/hadoop/hdfs/server/datanode/DataXceiverServer.java, there is the
following code snippet in the run() method:
156: } catch (OutOfMemoryError ie) {
157: IOUtils.cleanup(null, peer);
158: // DataNode can run out of memory if there is too many transfers.
159: // Log the event, Sleep for 30 seconds, other transfers may complete
by
160: // then.
161: LOG.warn("DataNode is out of memory. Will retry in 30 seconds.",
ie);
162: try {
163: Thread.sleep(30 * 1000);
164: } catch (InterruptedException e) {
165: // ignore
166: }
167: }
Note that InterruptedException is completely ignored. This might not be safe
since any potential events that lead to InterruptedException are lost?
More info on why InterruptedException shouldn't be ignored:
http://stackoverflow.com/questions/1087475/when-does-javas-thread-sleep-throw-interruptedexception
Thanks,
Ding
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)