[ https://issues.apache.org/jira/browse/HDFS-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13153860#comment-13153860 ]
Konstantin Shvachko commented on HDFS-2573: ------------------------------------------- The test was introduced in HDFS-2451 to test behavior of DataXceiverServer in case OutOfMemoryError is thrown. There were several versions of the test using mocking and aspects. With current version I see that DataXceiverServer.run() does not catch OOME thrown as a fault injection. What happens here is: new Daemon(datanode.threadGroup, new DataXceiver(s, datanode, this)).start(); This creates a new thread, and then invokes DataXceiver.run() with fault injection, which throws OOME as expected. BUT, this is thrown in the new thread, which is different from the thread DataXceiverServer.run() is in. And the new thread does not catch the exception. I clearly see dispatchUncaughtException() when I run it in debugger. I propose to remove the test. I think we tried as hard as we could, but couldn't reasonably reproduce the scenario. > TestFiDataXceiverServer is failing, not testing OOME > ---------------------------------------------------- > > Key: HDFS-2573 > URL: https://issues.apache.org/jira/browse/HDFS-2573 > Project: Hadoop HDFS > Issue Type: Bug > Components: data-node, test > Affects Versions: 0.22.0 > Reporter: Konstantin Shvachko > Fix For: 0.22.0 > > > TestFiDataXceiverServer is failing occasionally. It turns out also that the > test is not testing the desired condition, because OOME is not caught in > DataXceiverServer.run() -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira