Xuan Gong commented on YARN-3024:

[~chengbing.liu] Thanks for working on this ticket. I am starting to look at 
the patch. Overall looks good, but 

* on the latest patch, looks like you change the logic for 
          case FETCH_PENDING:

Originally, we will directly return the response with LocalizerAction.LIVE
But now we have to do:
      LocalResource next = findNextResource();
      if (next != null) {
        try {
          ResourceLocalizationSpec resource =
        } catch (IOException e) {
          LOG.error("local path for PRIVATE localization could not be " +
            "found. Disks might have failed.", e);
        } catch (URISyntaxException e) {
            //TODO fail? Already translated several times...
      } else if (pending.isEmpty()) {
        // TODO: Synchronization
        action = LocalizerAction.DIE;

      return response;

* Could you fix this format
+      if (action == LocalizerAction.DIE) {
+       response.setLocalizerAction(action);
+       return response;
+      }

> LocalizerRunner should give DIE action when all resources are localized
> -----------------------------------------------------------------------
>                 Key: YARN-3024
>                 URL: https://issues.apache.org/jira/browse/YARN-3024
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 2.6.0
>            Reporter: Chengbing Liu
>            Assignee: Chengbing Liu
>         Attachments: YARN-3024.01.patch, YARN-3024.02.patch, 
> YARN-3024.03.patch
> We have observed that {{LocalizerRunner}} always gives a LIVE action at the 
> end of localization process.
> The problem is {{findNextResource()}} can return null even when {{pending}} 
> was not empty prior to the call. This method removes localized resources from 
> {{pending}}, therefore we should check the return value, and gives DIE action 
> when it returns null.

This message was sent by Atlassian JIRA

Reply via email to