[ 
https://issues.apache.org/jira/browse/YARN-3024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14276301#comment-14276301
 ] 

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 
{code}
          case FETCH_PENDING:
            break;
{code}

Originally, we will directly return the response with LocalizerAction.LIVE
But now we have to do:
{code}
      LocalResource next = findNextResource();
      if (next != null) {
        try {
          ResourceLocalizationSpec resource =
              NodeManagerBuilderUtils.newResourceLocalizationSpec(next,
                getPathForLocalization(next));
          rsrcs.add(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;
      }

      response.setLocalizerAction(action);
      response.setResourceSpecs(rsrcs);
      return response;
{code}

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


> 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
(v6.3.4#6332)

Reply via email to