hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Payne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-8774) Memory leak when CapacityScheduler allocates from reserved container with non-default label
Date Thu, 20 Sep 2018 16:47:00 GMT

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

Eric Payne commented on YARN-8774:

[~Tao Yang], The patch and UT look good to me. However, I have one request.

The bug does not exist in 2.8, but it does exist in 2.9, and I think we should backport this
all the way back to 2.9. However, although the patch does apply to 2.9, it does not build:
[ERROR] /home/ericp/hadoop/source/YARN-8774/branch-2.8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/allocator/RegularContainerAllocator.java:[744,9]
cannot find symbol
[ERROR]   symbol:   class AppPlacementAllocator

So, before I commit this, can you please provide a branch-2.9 patch?

> Memory leak when CapacityScheduler allocates from reserved container with non-default
> -------------------------------------------------------------------------------------------
>                 Key: YARN-8774
>                 URL: https://issues.apache.org/jira/browse/YARN-8774
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacityscheduler
>    Affects Versions: 3.2.0, 2.8.5
>            Reporter: Tao Yang
>            Assignee: Tao Yang
>            Priority: Critical
>         Attachments: YARN-8774.001.patch
> The cause is that the RMContainerImpl instance of reserved container lost its node label
expression, when scheduler reserves containers for non-default node-label requests, it will
be wrongly added into LeafQueue#ignorePartitionExclusivityRMContainers and never be removed.
> To reproduce this memory leak:
> (1) create reserved container
> RegularContainerAllocator#doAllocation:  create RMContainerImpl instanceA (nodeLabelExpression="")
> LeafQueue#allocateResource:  RMContainerImpl instanceA is put into  LeafQueue#ignorePartitionExclusivityRMContainers
> (2) allocate from reserved container
> RegularContainerAllocator#doAllocation: create RMContainerImpl instanceB (nodeLabelExpression="test-label")
> (3) From now on, RMContainerImpl instanceA will be left in memory (be kept in LeafQueue#ignorePartitionExclusivityRMContainers)
forever until RM restarted

This message was sent by Atlassian JIRA

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

View raw message