From: Eero Saynatkari Date: 2012-02-08T07:12:12+09:00 Subject: [ruby-core:42419] [ruby-trunk - Bug #5980][Open] Trying to Load File When Too Many Files Open Should Raise Something Other Than Plain LoadError Issue #5980 has been reported by Eero Saynatkari. ---------------------------------------- Bug #5980: Trying to Load File When Too Many Files Open Should Raise Something Other Than Plain LoadError https://bugs.ruby-lang.org/issues/5980 Author: Eero Saynatkari Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0dev (2012-02-07 trunk 34462) [x86_64-darwin11.3.0] 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
' from -e:1:in `times' from -e:1:in `
' $ 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 `
' $ ruby -v ruby 2.0.0dev (2012-02-07 trunk 34462) [x86_64-darwin11.3.0] -- http://bugs.ruby-lang.org/