[ https://issues.apache.org/jira/browse/YARN-9074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705604#comment-16705604 ]
Zhaohui Xin edited comment on YARN-9074 at 12/1/18 3:38 AM: ------------------------------------------------------------ {quote}IIRC, there isn't a way to avoid the deletion task and continue to support the debug delay. Is there an issue that you encountered that you can share more detail on? {quote} Hi, [~shaneku...@gmail.com]. Current code works, but there is some confusion. I think container "_stop and clean up"_ should be located in CLEANUP_CONTAINER, but now part of it is in CLEANUP_CONTAINER and part is in Deletion Service Now. !image-2018-12-01-11-38-18-191.png! was (Author: uranus): {quote}IIRC, there isn't a way to avoid the deletion task and continue to support the debug delay. Is there an issue that you encountered that you can share more detail on? {quote} Hi, [~shaneku...@gmail.com]. Current code works, but there is some confusion. I think container "_stop and clean up"_ should be located in CLEANUP_CONTAINER, but now part of it is in CLEANUP_CONTAINER and part is in Deletion Service Now. !image-2018-12-01-11-36-12-448.png! > Docker container rm command should be executed after stop > --------------------------------------------------------- > > Key: YARN-9074 > URL: https://issues.apache.org/jira/browse/YARN-9074 > Project: Hadoop YARN > Issue Type: Sub-task > Reporter: Zhaohui Xin > Assignee: Zhaohui Xin > Priority: Major > Attachments: image-2018-12-01-11-36-12-448.png, > image-2018-12-01-11-38-18-191.png > > > {code:java} > @Override > public void transition(ContainerImpl container, ContainerEvent event) { > container.setIsReInitializing(false); > // Set exit code to 0 on success > container.exitCode = 0; > // TODO: Add containerWorkDir to the deletion service. > if (DockerLinuxContainerRuntime.isDockerContainerRequested( > container.daemonConf, > container.getLaunchContext().getEnvironment())) { > removeDockerContainer(container); > } > if (clCleanupRequired) { > container.dispatcher.getEventHandler().handle( > new ContainersLauncherEvent(container, > ContainersLauncherEventType.CLEANUP_CONTAINER)); > } > container.cleanup(); > }{code} > Now, when container is finished, NM firstly execute "_docker rm xxx"_ to > remove it and this thread is placed in deletionService. see more in YARN-5366 > . > Next, NM will execute "_docker stop_" and "docker kill" command. these tow > commands are wrapped up in ContainerCleanup thread and executed by > ContainersLauncher. see more in YARN-7644. > The above will cause the container's cleanup to be split into two threads. I > think we should refactor these code to make all docker container killing > process be place in ContainerCleanup thread and "_docker rm_" should be > executed last. -- 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