[ 
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

        

Reply via email to