[ https://issues.apache.org/jira/browse/HADOOP-5852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710399#action_12710399 ]
Tom White commented on HADOOP-5852: ----------------------------------- Background on why I think setTaskTrackerManager() was being called outside the constructor. It's not generally a good idea to pass "this" from the constructor to another object, since the object hasn't finished initialization so may not be in a safe state (http://www.ibm.com/developerworks/java/library/j-jtp0618.html#2). HADOOP-3628 introduces an initialize method which will provide a standard place to do initialization. > JobTracker accepts heartbeats before startup is complete > -------------------------------------------------------- > > Key: HADOOP-5852 > URL: https://issues.apache.org/jira/browse/HADOOP-5852 > Project: Hadoop Core > Issue Type: Bug > Reporter: Todd Lipcon > Priority: Critical > > When the JobTracker is instantiated, it starts listening on its RPC > interfaces before its startup is complete (ie the constructor is finished > executing). Because of this, jt.taskScheduler.taskTrackerManager can be null > when the JT receives a heartbeat from a TT. This throws the JT/TT pair into a > tight infinite loop (HADOOP-5761) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.