You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Zhaohui Xin (JIRA)" <ji...@apache.org> on 2019/01/04 02:13:00 UTC

[jira] [Comment Edited] (YARN-9074) Docker container rm command should be executed after stop

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

Zhaohui Xin edited comment on YARN-9074 at 1/4/19 2:12 AM:
-----------------------------------------------------------

{quote}I am having trouble to understand this statement with previous conversation.  Delayed removal is a feature to create a grace period of waiting time to debug container before clean up.  If docker rm runs immediately after docker stop, then debug feature can not take place.
{quote}
I agree with making docker rm action in deletion service for debug, but why we repeat  this code too many times in event handling. 
  
 Would it be better to put this code in ContainerCleanup?


was (Author: uranus):
{quote}I am having trouble to understand this statement with previous conversation.  Delayed removal is a feature to create a grace period of waiting time to debug container before clean up.  If docker rm runs immediately after docker stop, then debug feature can not take place.
{quote}
I agree with making docker rm action in deletion service for debug, but why we repeat  this code too many times in event handling. 
 
Would it be better to put this code in ContainerCleanup?

 

 

 

> 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: YARN-9074.001.patch, 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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org