[ https://issues.apache.org/jira/browse/YARN-10467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17221828#comment-17221828 ]
Hadoop QA commented on YARN-10467: ---------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Logfile || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 16s{color} | | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || || | {color:green}+1{color} | {color:green} dupname {color} | {color:green} 0m 0s{color} | | {color:green} No case conflicting files found. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | | {color:green} The patch appears to include 1 new or modified test files. {color} | || || || || {color:brown} branch-2.10 Compile Tests {color} || || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 9m 33s{color} | | {color:green} branch-2.10 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 46s{color} | | {color:green} branch-2.10 passed with JDK Oracle Corporation-1.7.0_95-b00 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 40s{color} | | {color:green} branch-2.10 passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 26s{color} | | {color:green} branch-2.10 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 46s{color} | | {color:green} branch-2.10 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 33s{color} | | {color:green} branch-2.10 passed with JDK Oracle Corporation-1.7.0_95-b00 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 26s{color} | | {color:green} branch-2.10 passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 {color} | | {color:blue}0{color} | {color:blue} spotbugs {color} | {color:blue} 1m 31s{color} | | {color:blue} Used deprecated FindBugs config; considering switching to SpotBugs. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 28s{color} | | {color:green} branch-2.10 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 40s{color} | | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s{color} | | {color:green} the patch passed with JDK Oracle Corporation-1.7.0_95-b00 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 43s{color} | | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s{color} | | {color:green} the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 36s{color} | | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} blanks {color} | {color:green} 0m 0s{color} | | {color:green} The patch has no blanks issues. {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 22s{color} | | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 42s{color} | | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 29s{color} | | {color:green} the patch passed with JDK Oracle Corporation-1.7.0_95-b00 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 23s{color} | | {color:green} the patch passed with JDK Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 34s{color} | | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 67m 22s{color} | [/patch-unit-hadoop-yarn-project_hadoop-yarn_hadoop-yarn-server_hadoop-yarn-server-resourcemanager.txt|https://ci-hadoop.apache.org/job/PreCommit-YARN-Build/260/artifact/out/patch-unit-hadoop-yarn-project_hadoop-yarn_hadoop-yarn-server_hadoop-yarn-server-resourcemanager.txt] | {color:red} hadoop-yarn-server-resourcemanager in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 23s{color} | | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 90m 56s{color} | | {color:black}{color} | \\ \\ || Subsystem || Report/Notes || | Docker | ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/PreCommit-YARN-Build/260/artifact/out/Dockerfile | | JIRA Issue | YARN-10467 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/13014237/YARN-10467.branch-2.10.02.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 17a4b5241f8b 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | personality/hadoop.sh | | git revision | branch-2.10 / 90ebbaa3938a5c2908cb53fb9cd2d6630a949dc3 | | Default Java | Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 | | Multi-JDK versions | /usr/lib/jvm/java-7-openjdk-amd64:Oracle Corporation-1.7.0_95-b00 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_265-8u265-b01-0ubuntu2~16.04-b01 | | Test Results | https://ci-hadoop.apache.org/job/PreCommit-YARN-Build/260/testReport/ | | Max. process+thread count | 845 (vs. ulimit of 5500) | | modules | C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager | | Console output | https://ci-hadoop.apache.org/job/PreCommit-YARN-Build/260/console | | versions | git=2.7.4 maven=3.3.9 findbugs=3.0.1 | | Powered by | Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org | This message was automatically generated. > ContainerIdPBImpl objects can be leaked in RMNodeImpl.completedContainers > ------------------------------------------------------------------------- > > Key: YARN-10467 > URL: https://issues.apache.org/jira/browse/YARN-10467 > Project: Hadoop YARN > Issue Type: Bug > Components: resourcemanager > Affects Versions: 2.10.0, 3.0.3, 3.2.1, 3.1.4 > Reporter: Haibo Chen > Assignee: Haibo Chen > Priority: Major > Attachments: YARN-10467.00.patch, YARN-10467.01.patch, > YARN-10467.branch-2.10.00.patch, YARN-10467.branch-2.10.01.patch, > YARN-10467.branch-2.10.02.patch > > > In one of our recent heap analysis, we found that the majority of the heap is > occupied by {{RMNodeImpl.completedContainers}}<ContainerIdPBImp>, which > accounts for 19GB, out of 24.3 GB. There are over 86 million > ContainerIdPBImpl objects, in contrast, only 161,601 RMContainerImpl objects > which represent the # of active containers that RM is still tracking. > Inspecting some ContainerIdPBImpl objects, they belong to applications that > have long finished. This indicates some sort of memory leak of > ContainerIdPBImpl objects in RMNodeImpl. > > Right now, when a container is reported by a NM as completed, it is > immediately added to RMNodeImpl.completedContainers and later cleaned up > after the AM has been notified of its completion in the AM-RM heartbeat. The > cleanup can be broken into a few steps. > * Step 1: the completed container is first added to > RMAppAttemptImpl.justFinishedContainers (this is asynchronous to being added > to {{RMNodeImpl.completedContainers}}). > * Step 2: During the heartbeat AM-RM heartbeat, the container is removed > from RMAppAttemptImpl.justFinishedContainers and added to > RMAppAttemptImpl.finishedContainersSentToAM > Once a completed container gets added to > RMAppAttemptImpl.finishedContainersSentToAM, it is guaranteed to be cleaned > up from {{RMNodeImpl.completedContainers}} > > However, if the AM exits (regardless of failure or success) before some > recently completed containers can be added to > RMAppAttemptImpl.finishedContainersSentToAM in previous heartbeats, there > won’t be any future AM-RM heartbeat to perform aforementioned step 2. Hence, > these objects stay in RMNodeImpl.completedContainers forever. > We have observed in MR that AMs can decide to exit upon success of all it > tasks without waiting for notification of the completion of every container, > or AM may just die suddenly (e.g. OOM). Spark and other framework may just > be similar. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org