You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2011/01/28 22:06:44 UTC
[jira] Commented: (MAPREDUCE-2289) Permissions race can make
getStagingDir fail on local filesystem
[ https://issues.apache.org/jira/browse/MAPREDUCE-2289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12988233#action_12988233 ]
Todd Lipcon commented on MAPREDUCE-2289:
----------------------------------------
The central issue here is that the Java mkdir API doesn't take a mode, so whenever we create a directory, it starts out with umask-based permissions until we can call chmod on it.
Seems to me it would be safe and fix the race if we had it *fix* permissions if they were wrong, rather than bailing out. Then the race would only cause a redundant chmod. Thoughts?
> Permissions race can make getStagingDir fail on local filesystem
> ----------------------------------------------------------------
>
> Key: MAPREDUCE-2289
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-2289
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: job submission
> Affects Versions: 0.22.0
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Fix For: 0.22.0
>
>
> I've observed the following race condition in TestFairSchedulerSystem which uses a MiniMRCluster on top of RawLocalFileSystem:
> - two threads call getStagingDir at the same time
> - Thread A checks fs.exists(stagingArea) and sees false
> -- Calls mkdirs(stagingArea, JOB_DIR_PERMISSIONS)
> --- mkdirs calls the Java mkdir API which makes the file with umask-based permissions
> - Thread B runs, checks fs.exists(stagingArea) and sees true
> -- checks permissions, sees the default permissions, and throws IOE
> - Thread A resumes and sets correct permissions
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.