New submission from Frank Thommen: Hi,
tempfile.TemporaryFile fails on NFS v4 filesystems. Assume the following mounts: $ mount [...] psi:/volumes/vol1 on /mnt/nfsv4 type nfs4 (rw,addr=xx.xx.xx.xx) psi:/volumes/vol1 on /mnt/nfsv3 type nfs (rw,addr=xx.xx.xx.xx) [...] $ and the following script "testtmpfile.py": --------------- #! env python import tempfile def _is_writable_dir_unnamed(p): try: t = tempfile.TemporaryFile(dir=p) t.write('1') t.close() except OSError: return False else: return True def _is_writable_dir_named(p): try: t = tempfile.NamedTemporaryFile(dir=p) t.write('1') t.close() except OSError: return False else: return True if not _is_writable_dir_unnamed("."): print "(unnamed) . is not writable" else: print "(unnamed) OK" if not _is_writable_dir_named("."): print "(named) . is not writable" else: print "(named) OK" --------------- Then you'll find the following behaviour: $ pwd /mnt/nfsv4 $ /g/software/bin/python-2.7 /tmp/testtmpfile.py (unnamed) . is not writable (named) OK $ $ pwd /mnt/nfsv3 $ /g/software/bin/python-2.7 /tmp/testtmpfile.py (unnamed) OK (named) OK $ Additionally in the failing case, a - writable - temporary file named "tmp*" is left in the directory. Observed on CentOS 5.10 with kernel 2.6.18-371.11.1.el5 and on CentOS 6.5 with kernel 2.6.32-431.23.3.el6.x86_64. The problem appears with Python 2.4, 2.6 and 2.7. Cheers frank ---------- messages: 226271 nosy: drosera priority: normal severity: normal status: open title: tempfile.TemporaryFile fails on NFS v4 filesystems versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22326> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com