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

Szilard Nemeth commented on YARN-9033:
--------------------------------------

Hi [~tangzhankun]!
 I took an initial look on your description.

I guess you meant the following:

1. In {{NodeManager.serviceInit}}: 
 {{createResourcePluginManager}} gets called first, and then initialize is 
called on the created object.
 If the instance is {{LCE}}, {{ResourceHandlerChain.bootstrap()}} gets called 
(as specified in {{LinuxContainerExecutor#init}}).

2. In {{NodeManager.serviceInit}} (later): 
 {{createContainerManager}} gets called and gets assigned to field 
{{containerManager}}.
 In the constructor of {{ContainerManagerImpl}}, a container scheduler is 
created: 
 {{this.containerScheduler = createContainerScheduler(context);}}

3. At the last statement of {{NodeManager.serviceInit}}: 
{{super.serviceInit(conf);}} gets called, that ultimately iterates over all the 
services and calls {{serviceInit}} on them, including the {{LCE}} and the 
{{ContainerScheduler}}.

 

I understand that we have 2 calls instead of 1 to 
{{ResourceHandlerChain.bootstrap}} in case we use {{LCE}}.

I don't get the part what happens when we don't use {{LCE}}: Should we still 
need to call bootstrap from the {{ContainerScheduler}}?
 I didn't get this part specifically:
{quote}But actually, the "updateContainer" invocation in YARN-7715 depend on 
containerId's cgroups path creation in "preStart" method which only happens 
when we use "LinuxContainerExecutor".
{quote}
Where can I find this code part / what should I check?

Thanks!

> ResourceHandlerChain#bootstrap is invoked twice during NM start if 
> LinuxContainerExecutor enabled
> -------------------------------------------------------------------------------------------------
>
>                 Key: YARN-9033
>                 URL: https://issues.apache.org/jira/browse/YARN-9033
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: yarn
>            Reporter: Zhankun Tang
>            Assignee: Zhankun Tang
>            Priority: Major
>         Attachments: YARN-9033-trunk.001.patch, YARN-9033-trunk.002.patch
>
>
> The ResourceHandlerChain#bootstrap will always be invoked in NM's 
> ContainerScheduler#serviceInit (Involved by YARN-7715)
> So if LCE is enabled, the ResourceHandlerChain#bootstrap will be invoked 
> first and then invoked again in ContainerScheduler#serviceInit.
> But actually, the "updateContainer" invocation in YARN-7715 depend on 
> containerId's cgroups path creation in "preStart" method which only happens 
> when we use "LinuxContainerExecutor". So the bootstrap of 
> ResourceHandlerChain shouldn't happen in ContainerScheduler#serviceInit.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to