hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhihai xu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (YARN-2753) Fix potential issues and code clean up for *NodeLabelsManager
Date Tue, 28 Oct 2014 22:21:34 GMT

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

zhihai xu updated YARN-2753:
----------------------------
    Description: 
Issues include:

* CommonNodeLabelsManager#addToCluserNodeLabels should not change the value in labelCollections
if the key already exists otherwise the Label.resource will be changed(reset).
* potential NPE(NullPointerException) in checkRemoveLabelsFromNode of CommonNodeLabelsManager.
** because when a Node is created, Node.labels can be null.
** In this case, nm.labels; may be null. So we need check originalLabels not null before use
it(originalLabels.containsAll).
* addToCluserNodeLabels should be protected by writeLock in RMNodeLabelsManager.java. because
we should protect labelCollections in RMNodeLabelsManager.

  was:
Issues include:

* CommonNodeLabelsManager#addToCluserNodeLabels should not change the value in labelCollections
if the key already exists otherwise the Label.resource will be changed(reset).
* potential NPE(NullPointerException) in checkRemoveLabelsFromNode of CommonNodeLabelsManager.
** because when a Node is created, Node.labels can be null.
** In this case, nm.labels; may be null. So we need check originalLabels not null before use
it(originalLabels.containsAll).
* addToCluserNodeLabels should be protected by writeLock in RMNodeLabelsManager.java. because
we should protect labelCollections in RMNodeLabelsManager.
* use static variable (Resources.none()) for not-running Node.resource in CommonNodeLabelsManager
to save memory.
** When a Node is not activated, the resource is never used, When a Node is activated, a new
resource will be assigned to it in RMNodeLabelsManager#activateNode (nm.resource = resource)
So it would be better to use static variable Resources.none() instead of allocating a new
variable(Resource.newInstance(0, 0)) for each node deactivation.


> Fix potential issues and code clean up for *NodeLabelsManager
> -------------------------------------------------------------
>
>                 Key: YARN-2753
>                 URL: https://issues.apache.org/jira/browse/YARN-2753
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: zhihai xu
>            Assignee: zhihai xu
>         Attachments: YARN-2753.000.patch, YARN-2753.001.patch, YARN-2753.002.patch, YARN-2753.003.patch,
YARN-2753.004.patch
>
>
> Issues include:
> * CommonNodeLabelsManager#addToCluserNodeLabels should not change the value in labelCollections
if the key already exists otherwise the Label.resource will be changed(reset).
> * potential NPE(NullPointerException) in checkRemoveLabelsFromNode of CommonNodeLabelsManager.
> ** because when a Node is created, Node.labels can be null.
> ** In this case, nm.labels; may be null. So we need check originalLabels not null before
use it(originalLabels.containsAll).
> * addToCluserNodeLabels should be protected by writeLock in RMNodeLabelsManager.java.
because we should protect labelCollections in RMNodeLabelsManager.



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

Mime
View raw message