Bugs item #1611154, was opened at 2006-12-07 22:25
Message generated for change (Comment added) made by eggert
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: Paul Eggert (eggert)
Date: 2006-12-22 07:56

Message:
Logged In: YES 
user_id=17848
Originator: YES

OK, I'll attach a revised patch that uses a configure test to check for
this bug.
File Added: python-stat-patch-2.diff

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

Comment By: A.M. Kuchling (akuchling)
Date: 2006-12-20 13: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
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to