[ 
https://issues.apache.org/jira/browse/MAPREDUCE-3614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ravi Prakash updated MAPREDUCE-3614:
------------------------------------

    Attachment: MAPREDUCE-3614.patch

Thanks Daryn and Vinod for your careful reviews. Attaching a patch addressing 
comments from them.

Here are some clarifications
@Daryn:
bq. There's some issues with the filesystem handling. It's creating a 
filesystem to get the fs scheme so it can create the same filesystem again.
I chose not to modify the code which had already been checked in. For myself 
I'm now getting the schema directly from the config.

bq. The code is a bit misleading about only running when a SIGTERM hits. Unless 
something unregisters the shutdown hook, it runs on a clean exit too. You have 
to make sure that none of the changes are going to be detrimental to a normal 
shutdown.
You are right! I have renamed the variables to more accurately say isSignalled 
etc. I reviewed the code and it will run fine in case of a normal shutdown too 
and ran it on my 1 node cluster a few times and checked the logs. For JHEH, all 
jobIds should have been closed in case of a normal shutdown, so nothing will be 
different. In RMCommunicator there is the stopped variable which makes sure it 
isn't run on stopped objects.

bq. Is there a compelling need to maintain a parallel set of JobIds? Why not 
check the fileMap values to see if the writer is open? The event construction 
looks a bit odd, but I don't know much about event injection.
You are right! Again! :) I'm checking for open eventWriters in fileMap now. I 
had to modify EventWriter for that. But I like it better.

bq. I'd suggest reverting all the fs manipulation code, and try this:
I had already tried that approach. And failed :( The problem with using 
"fs.automatic.close" was that a FileSystem object had already been opened with 
that parameter set to true. If you see FileSystem.java:2080, it doesn't 
overwrite that value. As a result on SIGTERM, the FileSystem object was being 
closed.

@Vinod
bq. FindBugs warning is still not fixed as Jenkins reports.
Sorry about that. Should be fixed now.
bq. Not sure why you need all the magic with the FileSystem objects, can you 
explain?
FileSystem registers its own Runtime shutdownhook (FileSystem.java:2076) This 
closes all instances of FileSystem objects without the "magic". :( So when JHEH 
wants to write the JobUnsuccessfulCompletionEvent to HDFS / move the files to 
done_intermediate, it would throw an IOException.
bq. You can make MRAppMaster.MRAppMasterShutdownHook extend 
CompositeServiceShutdownHook
Daryn pointed out I'd made another boo boo here =D I should not have been 
starting off another thread in MRAppMasterShutdownHook for 
CompositeServiceShutdownHook. I just needed to call stop() so there was no need 
for extending anymore
bq. RMCommunicator: It seems unnatural to set killed final state if the job was 
running. I think you should set a flag with RMCommunicator similar to 
JobHistoryEventHandler.
Thanks for the suggestion. Done! :) 

bq. Trivial: isSigTermed == false can be written as !isSigTermed
Done!
bq. Again trivial: The sigterm flag will never go back to false from true. So 
the code snippet "while (isSigTermed && jobIt.hasNext()) .." can be rewritten 
as "if (isSigTermed) { while .. }"
Done
bq. For the same snippet, can you simply add a comment saying, we are doing 
this so as to drain everything and only write finish-events to shutdown as fast 
as possible.
Done!
bq. The test seems very wired into the code. Can we instead do something like 
this:
Done! I've tried being as close as possible to the SIGTERM without the test 
becoming too onerous. Please let me know if it needs some change still.


                
>  finalState UNDEFINED if AM is killed by hand
> ---------------------------------------------
>
>                 Key: MAPREDUCE-3614
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-3614
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv2
>    Affects Versions: 0.23.0
>            Reporter: Ravi Prakash
>            Assignee: Ravi Prakash
>             Fix For: 0.23.2
>
>         Attachments: MAPREDUCE-3614.branch-0.23.patch, MAPREDUCE-3614.patch, 
> MAPREDUCE-3614.patch, MAPREDUCE-3614.patch, MAPREDUCE-3614.patch, 
> MAPREDUCE-3614.patch
>
>
> Courtesy [~dcapwell]
> {quote}
> If the AM is running and you kill the process (sudo kill #pid), the State in 
> Yarn would be FINISHED and FinalStatus is UNDEFINED.  The Tracking UI would 
> say "History" and point to the proxy url (which will redirect to the history 
> server).
> The state should be more descriptive that the job failed and the tracker url 
> shouldn't point to the history server.
> {quote}

--
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