[issue13192] ImportError silences low-level OS errors

2013-02-01 Thread Brett Cannon

Brett Cannon added the comment:

Is this still an issue in (at least) 3.4 with the new I/O exceptions? And I 
feel like there was another bug about this.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2013-02-01 Thread Eric Snow

Eric Snow added the comment:

Are you thinking of issue 15833?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2013-02-01 Thread Antoine Pitrou

Antoine Pitrou added the comment:

In 3.3 and 3.4, exceptions are not silenced anymore:

 import resource
 resource.setrlimit(resource.RLIMIT_NOFILE, (2, 100))
 import encodings.idna
Traceback (most recent call last):
  File stdin, line 1, in module
  File frozen importlib._bootstrap, line 1584, in _find_and_load
  File frozen importlib._bootstrap, line 1551, in _find_and_load_unlocked
  File frozen importlib._bootstrap, line 586, in _check_name_wrapper
  File frozen importlib._bootstrap, line 1049, in load_module
  File frozen importlib._bootstrap, line 1030, in load_module
  File frozen importlib._bootstrap, line 562, in module_for_loader_wrapper
  File frozen importlib._bootstrap, line 883, in _load_module
  File frozen importlib._bootstrap, line 1008, in get_code
  File frozen importlib._bootstrap, line 1058, in get_data
OSError: [Errno 24] Too many open files: 
'/home/antoine/cpython/default/Lib/encodings/idna.py'


Given that fixing the issue in bugfix branches would be a slight behaviour 
change, I think we can close this issue.

--
resolution:  - out of date
stage:  - committed/rejected
status: open - closed
versions: +Python 2.7 -Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-17 Thread Arfrever Frehtes Taifersar Arahesis

Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com:


--
nosy: +Arfrever

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-17 Thread Eric Snow

Eric Snow ericsnowcurren...@gmail.com added the comment:

Are you suggesting raising the OSError (or something else) rather than an 
ImportError?  If so, would it make sense to chain the exception instead.  That 
way the existing code that expects ImportError continues to work, while still 
allowing access to the original error through __cause__.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-17 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 Are you suggesting raising the OSError (or something else) rather than
 an ImportError?  If so, would it make sense to chain the exception
 instead.  That way the existing code that expects ImportError
 continues to work

Does any existing code rely on ImportError being raised when there's a
rare OS error of some sort?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread Antoine Pitrou

New submission from Antoine Pitrou pit...@free.fr:

Not sure this is by design or not, but I wanted to report this issue (it's 
rather hard to diagnose). Here the file descriptor limit is reached, and 
import raises an ImportError while it would be more helpful to let the 
original OS error slip through (which, here, is EMFILE):

 import resource
 resource.setrlimit(resource.RLIMIT_NOFILE, (2, 100))
 import encodings.idna
Traceback (most recent call last):
  File stdin, line 1, in module
ImportError: No module named 'idna'
 resource.setrlimit(resource.RLIMIT_NOFILE, (100, 100))
 import encodings.idna


--
components: Interpreter Core
messages: 145639
nosy: brett.cannon, ncoghlan, pitrou
priority: normal
severity: normal
status: open
title: ImportError silences low-level OS errors
type: behavior
versions: Python 3.2, Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread STINNER Victor

STINNER Victor victor.stin...@haypocalc.com added the comment:

_Py_fopen() returns NULL without raising an exception if fopen() fails.

Attached patch raises a OSError if fopen() if errno is different than ENOENT. I 
don't know if ENOENT is the right error number on Windows. Should we ignore 
more error numbers, like EACCESS?

--
keywords: +patch
nosy: +haypo
Added file: http://bugs.python.org/file23421/fopen_err.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 _Py_fopen() returns NULL without raising an exception if fopen() fails.
 
 Attached patch raises a OSError if fopen() if errno is different than
 ENOENT. I don't know if ENOENT is the right error number on Windows.

It seems so.

  Should we ignore more error numbers, like EACCESS?

I suggest also ignoring ENOTDIR and EISDIR. Not sure about EACCES.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread STINNER Victor

STINNER Victor victor.stin...@haypocalc.com added the comment:

 I suggest also ignoring ENOTDIR and EISDIR. Not sure about EACCES.

We should maybe mimick the io module:


 open('Lib')
IsADirectoryError: [Errno 21] Is a directory: 'Lib'

In the io module, opening a directory raises an exception. In the import 
machinery, an explicit check is done (stat+ISDIR) before opening the file. The 
file is ignored if it is a directory. We can maybe remove the test before 
opening the file, and handle IsADirectoryError exception instead.

--

I don't think that fopen() can fails with ENOTDIR. rmdir() can fail with 
ENOTDIR.

--

For EACCES: Python ignores currently these errors. I was already surprised by 
this behaviour. My use case: I have two users (haypo and fusil). I installed 
a module of haypo user into /usr/lib/python... using symlink, but fusil doesn't 
have access to /home/haypo. When fusil tries to load a module, import fails 
without any warning or error.

Fail with an error is maybe not a good idea because it's not because a 
directory of sys.path cannot be read, than the import will fail. The module can 
be found in another (accessible) directory.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread Antoine Pitrou

Antoine Pitrou pit...@free.fr added the comment:

 I don't think that fopen() can fails with ENOTDIR.

According to POSIX:

[ENOTDIR]
A component of the path prefix is not a directory, or the filename
argument contains at least one non- slash character and ends with one
or more trailing slash characters and the last pathname component
names an existing file that is neither a directory nor a symbolic link
to a directory.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/fopen.html

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue13192] ImportError silences low-level OS errors

2011-10-16 Thread Eric Snow

Changes by Eric Snow ericsnowcurren...@gmail.com:


--
nosy: +eric.snow

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue13192
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com