You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "Hong Zhiguo (JIRA)" <ji...@apache.org> on 2017/03/10 08:25:04 UTC

[jira] [Created] (YARN-6319) race condition between deleting app dir and deleting container dir

Hong Zhiguo created YARN-6319:
---------------------------------

             Summary: 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

Suggestions are welcome.





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

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