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

Hong Zhiguo updated YARN-6319:
------------------------------
    Description: 
Last container (on one node) of one app complete
    |    --> triggers async deletion of container dir (container cleanup)
    |    --> triggers async deletion of app dir (app cleanup)

For LCE, deletion is done by container-executor. The "app cleanup" lists 
sub-dir (step 1), and then unlink items one by one(step 2).   If a file is 
deleted by "container cleanup" between step 1 and step2, it'll report below 
error and breaks the deletion.
{code}
ContainerExecutor: Couldn't delete file 
$LOCAL/usercache/$USER/appcache/application_1481785469354_353539/container_1481785469354_353539_01_000028/$FILE
 - No such file or directory
{code}

This app dir then escape the cleanup. And that's why we always have many app 
dirs left there.

solution 1: just ignore the error without breaking in 
container-executor.c::delete_path()
solution 2: use a lock to serialize the cleanup of same app dir.
solution 3: backoff and retry on error

Comments are welcome.



  was:
Last container (on one node) of one app complete
    |    --> triggers async deletion of container dir (container cleanup)
    |    --> triggers async deletion of app dir (app cleanup)

For LCE, deletion is done by container-executor. The "app cleanup" lists 
sub-dir (step 1), and then unlink items one by one(step 2).   If a file is 
deleted by "container cleanup" between step 1 and step2, it'll report below 
error and breaks the deletion.
{code}
ContainerExecutor: Couldn't delete file 
$LOCAL/usercache/$USER/appcache/application_1481785469354_353539/container_1481785469354_353539_01_000028/$FILE
 - No such file or directory
{code}

This app dir then escape the cleanup. And that's why we always have many app 
dirs left there.

solution 1: just ignore the error without breaking in 
container-executor.c::delete_path()
solution 2: use a lock to serialize the cleanup of same app dir.
solution 3: backoff and retry on error

Suggestions are welcome.




> race condition between deleting app dir and deleting container dir
> ------------------------------------------------------------------
>
>                 Key: YARN-6319
>                 URL: https://issues.apache.org/jira/browse/YARN-6319
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>            Reporter: Hong Zhiguo
>            Assignee: Hong Zhiguo
>
> Last container (on one node) of one app complete
>     |    --> triggers async deletion of container dir (container cleanup)
>     |    --> triggers async deletion of app dir (app cleanup)
> For LCE, deletion is done by container-executor. The "app cleanup" lists 
> sub-dir (step 1), and then unlink items one by one(step 2).   If a file is 
> deleted by "container cleanup" between step 1 and step2, it'll report below 
> error and breaks the deletion.
> {code}
> ContainerExecutor: Couldn't delete file 
> $LOCAL/usercache/$USER/appcache/application_1481785469354_353539/container_1481785469354_353539_01_000028/$FILE
>  - No such file or directory
> {code}
> This app dir then escape the cleanup. And that's why we always have many app 
> dirs left there.
> solution 1: just ignore the error without breaking in 
> container-executor.c::delete_path()
> solution 2: use a lock to serialize the cleanup of same app dir.
> solution 3: backoff and retry on error
> Comments are welcome.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

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

Reply via email to