Message159728
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). |
|
Date |
User |
Action |
Args |
2012-04-30 19:14:17 | amcnabb | set | recipients:
+ amcnabb |
2012-04-30 19:14:17 | amcnabb | set | messageid: <1335813257.88.0.458381281199.issue14702@psf.upfronthosting.co.za> |
2012-04-30 19:14:17 | amcnabb | link | issue14702 messages |
2012-04-30 19:14:17 | amcnabb | create | |
|