From: "mame (Yusuke Endoh)" Date: 2012-11-20T22:16:57+09:00 Subject: [ruby-core:49724] [ruby-trunk - Feature #5980] Trying to Load File When Too Many Files Open Should Raise Something Other Than Plain LoadError Issue #5980 has been updated by mame (Yusuke Endoh). Target version set to next minor ---------------------------------------- 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-33268 Author: rue (Eero Saynatkari) Status: Feedback Priority: Normal Assignee: Category: Target version: next minor 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/