This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author amcnabb
Recipients amcnabb
Date 2012-04-30.19:14:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1335813257.88.0.458381281199.issue14702@psf.upfronthosting.co.za>
In-reply-to
Content
When a os.makedirs is used under an autofs directory, it crashes. For example, on my machine, `os.makedirs('/net/prodigy/tmp')` crashes with the following traceback:

Traceback (most recent call last):
  ...
  File "/usr/lib64/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/net/prodigy/tmp'

In this case, '/net' is an autofs directory that automatically mounts the "prodigy" directory by connecting to a host called "prodigy" using NFS. The problem seems to be related to the fact that the "/net/prodigy" directory does not actually exist until it is first accessed.

I tried running `mkdir -p /net/prodigy/tmp`, and it succeeds even though the "/net/prodigy" directory did not exist before the "mkdir" command was run.

I'm not sure exactly how `mkdir -p` is implemented, but one potential workaround for Python's makedirs would be to add the following at the top of the function:

    os.stat(name)

This stat call really only needs to be run the first time makedirs is called (it does not need to be used for each recursive call).
History
Date User Action Args
2012-04-30 19:14:17amcnabbsetrecipients: + amcnabb
2012-04-30 19:14:17amcnabbsetmessageid: <1335813257.88.0.458381281199.issue14702@psf.upfronthosting.co.za>
2012-04-30 19:14:17amcnabblinkissue14702 messages
2012-04-30 19:14:17amcnabbcreate