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

abhishek bafna updated OOZIE-2314:
----------------------------------
    Fix Version/s:     (was: trunk)
                   4.3.0

> Unable to kill old instance child job by workflow or coord rerun by Launcher
> ----------------------------------------------------------------------------
>
>                 Key: OOZIE-2314
>                 URL: https://issues.apache.org/jira/browse/OOZIE-2314
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Jaydeep Vishwakarma
>            Assignee: Jaydeep Vishwakarma
>            Priority: Blocker
>             Fix For: 4.3.0
>
>         Attachments: OOZIE-2314.patch, OOZIE-2314_v1.patch, 
> OOZIE-2314_v2.patch
>
>
> Oozie launcher kills all the child jobs which, launched by an old instance of 
> same launcher, workflow or coord action to avoid the duplicate child running 
> at same. For same it searches the application ids by tag and time, And it 
> kills all AMs. You can find more detail in OOZIE-2129. 
> It works fine when Launcher attempt gets killed and tries again. In case of 
> Yarn container which contains AM get kills due to some reason and we run 
> workflow/coord action this patch does not work.
>    It happens due to a time filter applied during finding the app ids, which 
> always takes the current time from the server.
>    {{LauncherMapperHelper.java}}
>    {code}
>        public static void setupYarnRestartHandling(JobConf launcherJobConf, 
> Configuration actionConf, String launcherTag)
>                throws NoSuchAlgorithmException {
>            
> launcherJobConf.setLong(LauncherMainHadoopUtils.OOZIE_JOB_LAUNCH_TIME, 
> System.currentTimeMillis());
>            // Tags are limited to 100 chars so we need to hash them to make 
> sure (the actionId otherwise doesn't have a max length)
>            String tag = getTag(launcherTag);
>            // keeping the oozie.child.mapreduce.job.tags instead of 
> mapreduce.job.tags to avoid killing launcher itself.
>            // mapreduce.job.tags should only go to child job launch by 
> launcher.
>            actionConf.set(LauncherMainHadoopUtils.CHILD_MAPREDUCE_JOB_TAGS, 
> tag);
>        }
>    {code}
> When a user rerun the workflow or coord action, Launcher picks the current 
> system time along with tags, It searches for running application ids and 
> kills them. It eventually does not find any App Id, As the previous instance 
> of the same workflow/coord ran before the new system time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to