Issue #5980 has been updated by mame (Yusuke Endoh).
Status changed from Feedback to Rejected
No volunteer.
----------------------------------------
Feature #5980: Trying to Load File When Too Many Files Open Should Raise Something Other Than Plain LoadError
https://bugs.ruby-lang.org/issues/5980#change-72543
* Author: rue (Eero Saynatkari)
* Status: Rejected
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
Currently encountering too many open file handles when trying to load/require a file simply raises a LoadError. It's not easy to determine that the root cause is exhaustion (see below for demonstration).
The error should be changed either to an actual EMFILE, a wrapper error, or at least alter the LoadError message to indicate the actual cause.
$ echo "p 1" > /tmp/test.rb
$ ruby -e 'fs = []; 250.times {|i| fs << File.open("/tmp/tst#{i}", "w") }; require "/tmp/test.rb"'
1
$ ruby -e 'fs = []; 252.times {|i| fs << File.open("/tmp/tst#{i}", "w") }'
-e:1:in `initialize': Too many open files - /tmp/tst251 (Errno::EMFILE)
from -e:1:in `open'
from -e:1:in `block in <main>'
from -e:1:in `times'
from -e:1:in `<main>'
$ ruby -e 'fs = []; 251.times {|i| fs << File.open("/tmp/tst#{i}", "w") }; require "/tmp/test.rb"'
/Users/rue/.rvm/rubies/ruby-head/lib/ruby/site_ruby/2.0.0/rubygems.rb:203:in `try_activate': cannot load such file -- rubygems/specification (LoadError)
from /Users/rue/.rvm/rubies/ruby-head/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:58:in `rescue in require'
from /Users/rue/.rvm/rubies/ruby-head/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:35:in `require'
from -e:1:in `<main>'
$ ruby -v
ruby 2.0.0dev (2012-02-07 trunk 34462) [x86_64-darwin11.3.0]
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>