[ https://issues.apache.org/jira/browse/HDFS-2452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13129204#comment-13129204 ]
Uma Maheswara Rao G commented on HDFS-2452: ------------------------------------------- {quote}The fix looks good. A suggestion for better logging and commenting. In the comment you can say something like "// DataNode can run out of memory if there is too many transfers. Log the event, sleep for 30 seconds, other transfers may complete be then." {quote} fixed {quote} In log message you can say something like LOG.warn("DataNode is out of memory. Will retry in 30 seconds.", e); {quote} Done {quote} For the test. You actually need to mock Daemon.start() method if possible. In your patch OutOfMemoryError comes from DataXceiver() constructor. In the exception I posted it is thrown in Thread.start(). {quote} I tried to mock start. But i could not do it because the thread is just local referance. So i couldnot inject mock obj here. So, to replicate the scenario, i throwed the OoutOfMemoryError from getConf. Thanks Uma > OutOfMemoryError in DataXceiverServer takes down the DataNode > ------------------------------------------------------------- > > Key: HDFS-2452 > URL: https://issues.apache.org/jira/browse/HDFS-2452 > Project: Hadoop HDFS > Issue Type: Bug > Components: data-node > Affects Versions: 0.22.0 > Reporter: Konstantin Shvachko > Assignee: Uma Maheswara Rao G > Fix For: 0.22.0 > > Attachments: HDFS-2452-22branch.1.patch, HDFS-2452-22branch.patch > > > OutOfMemoryError brings down DataNode, when DataXceiverServer tries to spawn > a new data transfer thread. -- 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