Rohith Sharma K S commented on YARN-2729:

bq. Hence i am reverting the fix for the comment which was given by Rohith 
Sharma K S. IIUC there are no impacts if we do super.serviceStop though 
theoritically its not the right way to do . Thoughts ?
The reason why I suggested in my earlier comment i.e {{In serviceStop in 
ScriptBasedNodeLabelsProvider , move super.serviceStop(); at end of 
serviceStop() so first it stops shexec and stopping parent.}} is Consider NM 
has services A,B,C,D which are started in the order of ABCD. When stopping, the 
services are stopped in reverse order i.e D,C,B,A. Say, D has child class D1. 
If you call super.serviceStop() first, D1 clean up will not happen first 
rather, D1(D,C,B,A)-cleanup D1 which is at the end. 

Better way to avoid all conflicts is create abstract method say cleanUp() in 
AbstractNodeLabelProvider. This method can be override in 
ScriptBasedNodeLabelsProvider. A sample change is like below
  protected void serviceStop() throws Exception {
    if (nodeLabelsScheduler != null) {

> Support script based NodeLabelsProvider Interface in Distributed Node Label 
> Configuration Setup
> -----------------------------------------------------------------------------------------------
>                 Key: YARN-2729
>                 URL: https://issues.apache.org/jira/browse/YARN-2729
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: nodemanager
>            Reporter: Naganarasimha G R
>            Assignee: Naganarasimha G R
>         Attachments: YARN-2729.20141023-1.patch, YARN-2729.20141024-1.patch, 
> YARN-2729.20141031-1.patch, YARN-2729.20141120-1.patch, 
> YARN-2729.20141210-1.patch, YARN-2729.20150309-1.patch, 
> YARN-2729.20150322-1.patch, YARN-2729.20150401-1.patch, 
> YARN-2729.20150402-1.patch, YARN-2729.20150404-1.patch, 
> YARN-2729.20150517-1.patch, YARN-2729.20150830-1.patch, 
> YARN-2729.20150925-1.patch, YARN-2729.20151015-1.patch, 
> YARN-2729.20151019.patch, YARN-2729.20151310-1.patch, 
> YARN-2729.20151310-2.patch
> Support script based NodeLabelsProvider Interface in Distributed Node Label 
> Configuration Setup . 
> Miscellaneous Issues :
> # In configurationNodeLabelsProvider instead of taking multiple labels from 
> single configuration, we need to support exclusive configuration for 
> partition (single label).
> # Proper logging when registration of Node Fails
> # Classloader was not getting reset from custom class loader in 
> TestConfigurationNodeLabelsProvider.java which could make test cases fail in 
> certain conditions
> # In ResourceTrackerService we need to consider distributed configuration 
> only when node labels are enabled. leads to lots of logs in certain conditions
> # NodeLabelsProvider needs to be a interface rather than  abstract class 

This message was sent by Atlassian JIRA

Reply via email to