[ python-Bugs-1611154 ] os.path.exists("file/") failure on Solaris 9

SourceForge.net noreply at sourceforge.net
Wed Dec 20 14:37:43 CET 2006


Bugs item #1611154, was opened at 2006-12-07 17:25
Message generated for change (Comment added) made by akuchling
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1611154&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Paul Eggert (eggert)
Assigned to: Nobody/Anonymous (nobody)
Summary: os.path.exists("file/") failure on Solaris 9

Initial Comment:
Solaris 9 and earlier fail to conform to POSIX, in that
stat("FILE/") succeeds even when FILE is not a directory.
POSIX says that in this case it should fail.  This problem causes os.path.exists("FILE/") to succeed when it should fail, which makes it harder to write portable Python code.  One of my students ran into this problem when doing a Django-based project: his code ran fine on his Linux box, but failed when he attempted to run it on the Solaris 8 server that is the standard platform for our students.

To reproduce the problem, on Solaris 8 (or 9):

$ touch file
$ ls -l file
-rw-rw-r-- 1 eggert csfac 0 Dec  7 14:19 file
$ python
Python 2.5 (r25:51908, Dec  7 2006, 13:14:10)
[GCC 4.1.1] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.exists("file/")
True

It should be False.

I'll attach a patch that works around the problem at
run-time.  If you prefer something that tests for it
at compile time please let me know.

----------------------------------------------------------------------

>Comment By: A.M. Kuchling (akuchling)
Date: 2006-12-20 08:37

Message:
Logged In: YES 
user_id=11375
Originator: NO

I think it would be sufficient to put a #ifdef <solaris 9> ... #endif
around the additional check. We don't want to make all platforms do extra
system calls in order to avoid a Solaris 9 bug.  Or you could write a
configure test to check for this bug, but that's more complicated a task.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1611154&group_id=5470


More information about the Python-bugs-list mailing list