Project

General

Profile

Actions

Feature #5980

closed

Trying to Load File When Too Many Files Open Should Raise Something Other Than Plain LoadError

Added by rue (Eero Saynatkari) almost 10 years ago. Updated over 3 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:42419]

Description

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 `'

$ 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]


Related issues

Related to Ruby master - Feature #13613: Prefer that require/require_relative/load to tell us permission error if the target file is unreadableFeedbackActions

Updated by naruse (Yui NARUSE) almost 10 years ago

If it raises other than LoadError, it breaks codes which uses LoadError.
Changing additional message can be accepted.

Actions #2

Updated by ko1 (Koichi Sasada) almost 10 years ago

  • Tracker changed from Bug to Feature

Updated by mame (Yusuke Endoh) almost 10 years ago

  • Status changed from Open to Feedback

Someone has to volunteer to write a patch.

--
Yusuke Endoh mame@tsg.ne.jp

Updated by mame (Yusuke Endoh) about 9 years ago

  • Target version set to 2.6
Actions #5

Updated by rhenium (Kazuki Yamaguchi) over 4 years ago

  • Related to Feature #13613: Prefer that require/require_relative/load to tell us permission error if the target file is unreadable added
Actions #6

Updated by naruse (Yui NARUSE) about 4 years ago

  • Target version deleted (2.6)

Updated by mame (Yusuke Endoh) over 3 years ago

  • Status changed from Feedback to Rejected

No volunteer.

Actions

Also available in: Atom PDF