[ 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